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.
I think `customViewWithOneNode` should be different from the default view. Now both of them contain `hi`, so for a second I was not sure if we are asserting the default view or the custom one.