Generate correct choices of people for a single week

[Pivotal ticket](https://www.pivotaltracker.com/story/show/79427332)

This adds a `PeopleCollectionFactory` responsible for taking in two hashes containing available information about people -- their basic information (including job role), and whether or not they have production access.

The formats the factory expects are taken from internal GDS spreadsheets (linked from the pivotal ticket, not publicly viewable), to ease our job when we wire in CSV loading.

It also adds a `RotaWeekBuilder`, which returns a `RotaWeek` collection, which conforms to the following rules:

1. No more than 1 person from the same team
2. At least 1 person with production access (that isn't web operations)
3. Has 2 developers and 1 web operations person on it

We were not able to implement:

1. No more than 1 tech lead at a time -- a canonical source of who is and is not a tech lead does not appear to be available.
2. Rotate people fairly. This will be added in a future PR.

These are suggestions for future enhancements.

**How to review**
Commit-by-commit review -- this is the first addition of 'real' behaviour for this application.

with @kalleth