Re initialise features

* Add a mutation observer to:
  * detect if a feature node has been moved (aka deleted and added)
  * detect if a feature node has been removed and trigger a `scope.$destroy` if necessary
  * only enable the observer during user changes
* Treat enter key as a `<br/>` to prevent nodes getting moved and so save on re-initialisation of features.