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
I've found from painful experience that if your goal is to be truly database-agnostic, lowercase names for everything are your best bet. Some databases (HSQL, H2, Oracle) may uppercase them, but they're case-insensitive out of the box. Other RDBMSs are not quite so friendly