* Unexport NoopXXX trace types
The change unexports the noop implementations and provide the NoopProvider function for user to construct noop providers. Users can access noop tracer and noop spans by using the provider.
This change removes the types users should never be directly using from the package. It improves the usability of the API by reducing the API surface to half and helping the user to focus on the canonical APIs.
Fixes#1133
* Provide noop tracer and span for internal use
* Remove obsolete doc
* Use noop span instead of nil
* Fix the broken build
* Add new propagators package
* Move B3 propagator to propagators
Update all `api/trace` dependencies in the propagator.
Export the isDeferred and isDebug methods of the SpanContext. These are
needed by the B3 propagator to track trace state.
* Move W3C trace context propagator to propagators
* Update package docs with supported encodings
* Move unified propagators code to own file
* Update b3 exported documentation
* Update trace_context exported documentation
* Add code examples for B3 propagator
* Add TraceContext example code
* Remove internal package
Move common testing declarations to the propagators_test.go file.
* Add changes to Changelog
* Add test to check default propagators