[WIP] API cleanup

This PR is a major cleanup and aims at making the library practically usable:

 - [x] Move event triggering from `ChangeSet` to `UnitOfWork`
 - [x] Rename `ChangeSet` to `ChangeMap` (naming is still amibiguous
 - [ ] Move `Change` to correct namespace
 - [ ] Simulate actual rollbacks along with commits
 - [ ] Redefine events to be triggered (eventually move to an embedded event manager)
 - [ ] Create a small bootstrapper or setup API to ease usage
 - [ ] Handle exceptions
 - [ ] Define transaction API