Moar tests

I've added tests for most models, most controllers, and factories for them too.

Cleaned up some of the models and controllers to get tests passing better.

Added validations to some models that were missing them.