Integration with Doctrine ORM

Added support of two different  Doctrine libraries:
- Doctrine MongoDB
- Doctrine ORM
According to dependency inversion principle, most components of bundle don't know anything about concrete doctrine library. Exceptions are concrete repositories and concrete models (documents for MongoDB and entities for ORM).
Interfaces and abstract classes are added for models, repositories and domain factory.  
Client able to configure what Doctrine library to use by customizing configuration.
Tests could run in both environments.