* 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.
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.
Loading `Config` in static section of `DDSpecification` happens before
bootstrap jar has been setup. This in turn causes problems down the
road because some of the classes are later loaded from bootstrap and
confuse things.