Testing Refactor

## Summary
Refactored Models and Angularjs to be testable.

Switched to Chaijs instead of shouldjs because chai can be used in the browser, for client testing.

## Tasks
From here we need to:
- Refactor the app into 2, public and admin.
- Abstract mongoose/schema from within the models and pass it in. This will allow mocking in tests and allow for more abstraction in case the data layer changes.