Introduce PeopleCollectionFactory

Data will be arriving in this application via CSV files (initially), but we
don't want to restrict ourselves to this.

Let's therefore use a PeopleCollectionFactory which accepts an array of keyed
hashes and use that to build a collection of People which can be used by the
rest of the application.

Introduce a passing test for the PeopleCollectionFactory. Though it may not be
a very useful class at the moment.