feat(components): add support for CSS encapsulation to transcluding components

* Extract ComponentCssLoader so it can be shared by ShadowDomComponentFactory and TranscludingComponentFactory
* Implement a CSS transformer similar to the one provided by Platform.JS. 
* Rename EventHandler into ShadowBoundary
* Rename WebPlatform into WebPlatformShim and provide two implementations: one based on platform.js and the other one built into Angular.


TODO:
- [x] Refactor ShadowDomComponentFactory#call and TranscludingComponentFactory#call.
- [x] Test ShimmingViewCache in isolation. At the moment it is tested indirectly. 
- [x] Test the default shim

Includes #1304 
My comment was mainly based on the DartDoc: `[ShadowBoundary] is responsible for handling events ...` that does not mention the CSS thing. The DartDoc could probably be improved.

Having two different classes might be a good thing, I'll review this PR and let you know what I think.