Add withEmptyDatabase test function

Creates a new database in a temporary folder. If creation fails,
deletes folder and returns failure. If creation succeeds, runs
supplied tests and then deletes database and folder.
Add Eq instance for a bunch of database field types
Add basic unit test for addRecording