Extend DB schema and API to record contacts

Extend database and API to store contact details explicitly. I've tried to make sure sensible things happen when data is updated or deleted.

Working towards completing openrightsgroup/cmp-issues#6. Once we have the contacts stored in the database correctly we can use the data to send them the emails to which they've subscribed.

Needs reviewing by @dantheta (possibly @NetworksAreMadeOfString too :)