Trying to abstract away the tracing implementation. Users can now set tracing middleware and implementations in the client and service tracer. Adding default implementations against otel.