Add basis for object ownership checks

I've added a base manager for models that represent data owned by teams. These models must have a simple field `team_lookup` that is a django ORM lookup to the team that owns that object. With that in place, the manager adds a method `for_team(team)` that returns a queryset that can be used as the base for further lookups. This queryset filters out all data that does not belong to the given team.

Additionally, I started using factories for test objects instead of fixtures.