feat(ScopeAware): introduce ScopeAware abstract class

Components that implement the ScopeAware scope setter, will get scope
set during compilation.

Currently, there is little incentive to use this, because Scope can be
injected in the Components. However, after PR/1269 Scope would not be
injectable and this would be the only way for components to obtain
scope.

Introducing this API earlier allows for clients to start using it and
not break when PR/1269 lands.

Closes #1360
fix(http): always initialize final coalesceDuration

fix a warning
style(ng_tracing_scopes): remove blank line

This removes a diff with g3v1x.
refactor: cleanup, rename trace functions & scopes