feat(components): adds support for multiple insertion points [WIP]

DON'T MERGE

@mhevery could you review this. There is only one piece that is missing (_sortedContents).

I'm for calling the collection `insertionPoints`. Not 100% sure about actually having a common inteface. Content and ViewPort actually have different interfaces. So we either:

1. Change Content to be more like ViewPort. So you don't insert nodes, but views.
2. Use the interface as a marker.