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.
Why are you still wrapping lines to 80 chars after our conversation about 120 chars?