Allow adding new formats for Join and Inject
Allow adding new formats for Join and Inject

Provide Register functions so that other libraries, or user code, can
add support for other formats/carriers. For example, this could be used
to add support for gRPC metadata.

This does add a performance overhead, which could be battled by
special-casing the built-in formats, if deemed necessary.

lygo/tracer,tracer/tracer