Simple angular history

Up for review - not for merge. Stll some things that need to be done.
- Fixing a little bug with double-firing events in the fire event directive (the currently applied fix introduces another bug)
- Implementation outside of the angular to showcase how a more complex plugin like the history can be done in an angular and non-angular way.
- This will lead to some changes to the event model - right now `state.setState` fires an event, it probably should be the other way round (`fireMajorEvent` which calls setState?). We'll see soon.