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.
Just a thought. Maybe we should have `pop` or `removeLast` for removing the last view from the view port. `viewPort.remove()` reads like I am trying to remove the view port itself.