Implemented language collaboration tab (#1052)

Made the LanguagePageContext use a similar system to VideoPage
context.  Instead of subclassing it, we create a method for each tab.
I think this is simpler than the other way.

Separated out template code for the button to join a collaboration.
This lets us use it in any template.  Changed the collaboration view a
bit so that we don't need to pass in the team as form value if the
team has already been set.

Moved Collaborator.edit_url() to Collaboration.get_editer_url().
Removed code that prevented collaboration_id from being sent if the
user has already endorsed the collaboration.  We want the user to
still be able to edit the collaboration in that case, for example they
might want to remove their endorsement.
Implemented collaborations tab on the videos page (#1052)
Added editor UI to remove endorsements
Simplified CollaborationStorage API

Since it's already using EditorData, we should just get values from
there rather then forcing the caller to pass in things like video id.