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 
`ShadowDomComponentFactory` uses platform.js through `PlatformJsBasedShim`, so it works only with element selectors.  The issue is currently present in master.