Provides common runtime services to connectors, such as a Vertx instance,
to avoid duplicating the creation and cleanup of shared components across connectors.
This method strips out the redundant upper bound types in type
variable types and wildcard types (or it would with wildcard types if
multiple upper bounds were allowed).