Complete overhaul of the database and it's API

Now uses a class called BaseDao for generic CRUD operations based
classes extending Model. The @DatabaseField is used to mark fields
that will be used in the database