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 
Could you please remove the `\n` from here, they make testing with IE fails, see https://github.com/angular/angular.dart/pull/1288/files#diff-184d55c4be9ba89ff317b308735c6ae9R91. You would also need to update the corresponding test.

I think is it much easier to include this here are this will not be updated while merging the PRs to master as the file has changed.