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.
This change is actually welcome, as we've had quite a lot of negative feedback due to this in the past