Refactored construction of the EntityManager out to an EntityManagerFactory

Added tests for the factory (needed to refactor the OrmTestCase so I could reuse mock config and mock connections).

This pattern is well established in Hibernate, I've been wondering why we don't have it in Doctrine.
I just told you that it is a static constructor: there's not much more than that :-)

If you are making `__construct` `public` then it's already enough for external reuse.