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 
I think global fields are initialized the first time they are called (i.e, they are lazy).