Added further model tests

 * Added tests for most of models.py
 * Refactored parts of models.py
 * Changed package __init__ to conditionally import views/models etc. Need
 * better method to stop nose importing them