Render a subview if what we rendered previously is a different instance

If parent view gets rerendered and the subview is swapped out - it gets
rendered - this seems to be the intuitive behaviour
Fix: reattach subviews correctly by properly checking if it's destroyed
Fix: renderSubviews doesn't blow up the subview's events

We need to detach first, because $container.html() unbinds the existing
subview's events. By detaching we prevent that from happening.
Docs: add a todo