Add some fields to core models to match the Popolo data model

This adds fields to the Person and AlternativePersonName models.

A significant addition is sort_name on Person, so that we can
now customize the sort order for each person, rather than
assuming that the last whitespace separated token in the
legal_name should be used for shorting.  (Use that value
initially on migration, though.)
Don't restrict a person's gender to 'm' or 'f'

Gender isn't a binary choice; also this change bring us into line with
the Popolo data model.
Refactor finding contact values, and only pass them to the template
Add a primary email address field to Person

Also make sure this email address is displayed along with other
contact details.