Smart formatters 

I started digging around the concept and this is what I have got so far.

First commit dd9ca49 pretty much rips out all the previous formatting code. As it does not fit with my notion of formatters that are now just simple plugins. They register their own mutation observers and do manipulations based on that.

For managing mutations am using [rafaelw/mutation-summary](https://github.com/rafaelw/mutation-summary) from google as a helper, but the useful functionality can be ripped out in future, as it is big and without AMD support (that is why my repo is in bower).