Finished refactoring model relationships

Unit tests for model and controller all pass. Controller methods in this
commit are internal methods that would be used by outward-facing
controller methods. More to come soon.