Big model refactor

* Model manager classes aka Django-style, it actually tends to clean the models up  a bit, by moving all @staticmethod's that did queries to the model-manager class for each model
* Develop a similar query api to Django somewhat, Model.objects.filter(**kwargs), Model.objects.get(**kwargs), Model.objects.create(*args, **kwargs), and delete()... put these in all the model-manager classes (this could get further refactoring later)

Further refactoring is likely to follow this commit