refactor the repository access

This pull requests addresses #4

TODOs:

- [x] create base structure
- [x] finish manager classes
- [x] finish Doctrine ORM support
- [x] replace direct usages of the repository
- [x] documentation
- [x] tests
- [ ] Propel support (possible)
- [ ] MongoDB support (possible)
- [ ] CouchDB support (possible)