THINK-247

This branch a new developer behaviour of branching per sub-task. As our branches start to implement larger features that require more complex logic this makes sense. However we probably want to start doing rebases rather than merges.

This branch represents the start of the work on invite_tokens, share_tokens. There is significant complexity in the api_controller that I'd love @twinge to take a look at.
The method would not return `nil` if a create failed. It would return a Visitor object that is unsaved and has error messages on it.