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.
In this case this method would return an object of type `Visitor::Invitation` instead of a `Visitor` object. All code paths in a method should return the same type of object (or `nil` and sometimes `false` as a special case)