Refactor of DbImporters/Changes in DB access

Removed derived importers : Database and NonPersistent. We now only have one importer class, preliminarily named medImporter.

Changed how we import data : controllers are no longer responsible for the creation of the importer, and are instead passed as an argument. Importer doesn't take ownership as the controllers are singletons.

All access to the DB should (in theory) go via the DataManager now. There are a few remaining cases where this isn't true, but I want to analyse how to handle them first.

Please give feedback - I'm aware the medImporter file is now massively bloated, and some further code cleanup can/should be done, but from an architectural perspective we've cut out some unnecessary problems and reduced coupling in the database handling.
I would prefer isEmpty() to empty(), one is clearly a boolean test whereas the other sounds like an action (a call to it will "empty" the database rather than test for emptiness)