Permissions

This PR adds support to grant `Permission`s on a `Conference` to another `User`

Notes:
- The `Conference`s returned by `ConferenceResource`.getConferences is now determined by the `Permission`s the logged in user has
- All the `Permission`s on a `Conference` can be retrieved from GET: /conferences/{conferenceId}/permissions, and created by POST: /conferences/{conferenceId}/permissions
- `Permission`s are managed (read, update, delete - but not create) via their own endpoint, on the GET,PUT,DELETE: /permissions/{permissionId}
- `Permission`s are added by searching the users table by either email_address or first_name and last_name
- There are five levels of permissions on a conference, None, View, Update, Full and Creator.  See the wiki for further details.