* Verify that we can schedule task and catch exceptions.
This should help to avoid additional exceptions on app crash during
startup.
* Avoid holding strong references from within executor to make sure
that things can get GCed.
As threads are visible to users, use 'opentelemetry-' prefix to ensure that it's immediately
obvious that we created the threads when using profilers, thread dumps, etc.
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
Pulls out utility classes for reuse by other projects.
This also meant the dependency had to be bundled with dd-trace-ot since it isn't published as a separate dependency.