Another part of #932
In this PR I changed all the library instrumentation packages -- these
are breaking changes, so I figured the earlier we do this the less
painful it'll be to the users. I know that at least some of them are
actively used, so we'll need to spell this out in the release notes.
---------
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
* Port WithSpanInstrumentation to Instrumenter API
* Unit tests, clean up attribute binding APIs
* Remove AsyncSpanEndStrategies and fix weak reference purging
* Move tryToGetResponse to AsyncOperationEndSupport
* Address PR comments
* ParameterAttributeNamesExtractor can no longer return a null array
* Move async strategies to annotation support
* Fix dependencies and refactor copypasta
* Move AsyncSpanEndStrategy to annotation support project
* spotless
* Port RxJava 2 async strategy to new interface
* Port RxJava 3 async strategy to new interface
* Port Guava async strategy to new interface
* Port Reactor async strategy to new interface
* Kick CI
* Add Guava instrumentation library with AsyncSpanEndStrategy
* Enable span strategy in advice
* Spotless
* Nix attempt at typeInitializer advice, leave TODO comment to revisit
* Move async span strategy registration to helper class
* Remove use of sameThreadExecutor
* Make helper class final and add comment about relying on static initializer