feat(viewPort): adds initial implementation of ViewPort.

ViewPort is the mechanism backing @Template directives. Those
directives can use the viewport to dynamically create, attach and
detach views.
Can you throw an exception instead of a string. I believe we do not have a good way (so it works in Dart and JS) to assert this throw.