Add a DAO testing framework

* Allows injecting DAOs using a new `@Dao` annotation
* Allows applying datasets before running tests using DbUnit and a new `@DataSet` annotation
`EntityManagerFactory.getCache().evictAll()` only clears the entity regions. My experience has been that you need to clear the collections, too, which is only possible by unwrapping from JPA down to Hibernate