Refactoring and improved test coverage

* Factored out User objects, created a way to specify coaching
  relationships in only one place and have them appear in both places.