render according to comparator

[WIP] Needs more tests.

Fixes #1061

Idea here is assigning the index of the model to each view in `this.children` we can then use these to get the element that we need to insert the view before.

Open to suggestions on logic here.