Add: Designated DB Interfaces for domains. Updated Model classes.

-wrote the interfaces that define the queries we will need for
implementing the pages we discussed.
-the original interface implements all three interfaces and uses client
classes to provide the functionality (only stubs)
-the model classes should be as stupid as possible, I moved the adding
to the DB to the corresponding datastores/datastoreInterfaces. This
gives all the benefits, but keeps the responsibilities tighter together.
-renamed Case to CaseDetail to be consistent with DB
-moved DatastoreInterface to database package, to separate from dumb
model classes that do not interact with the DB directly
-renamed some methods in the datastore interface to impose consistent
naming scheme