WIP: Real change events through state

Started as work on #264, where we wanted to notify the user when he has to save. For that we need to know when a real change has happened. Many future plugins are dependent on this as well - history and user tracking is not possible without it. 

Up until know we had no real chance to do that, as plugins just changed their objects in place without anyone knowing about it. Adding watches for that would not only have been ugly, but also very performance-expensive.

We therefore introduce `state.change`.

// tbd: description of `state.change`, `state.watch` and `state.on('change') 

Still much work to do, especially when more persisters are added - but we won't optimize prematurely.


Closes #264