Modify the backend spec to allow for fixing #17.

Allow teachers to change the team a user is in to any team they are a
member of already, as long as that user is not a BlueShirt.

BlueShirts can be in several teams, but this interface only allows
for the setting of a single team, which could potentially have bad
side effects if applied to BlueShirts.

Also expose the team that a user is in as part of the /user/:username
endpoint, so that the front-end can both display this information, as
well as a collection of suitable teams for changing to.

Change-Id: I4f9e11b0d37973e6fc8d1e138efeff93b0d3876e
Add setting of user teams to the backend.

This allows clients to both see the teams a user is in, and to set
the team a user should be in. This doesn't add this capability to
the web interface yet, but does bump the libnemesis version which
includes required changes.

Change-Id: I93e54693e794c52cc6526c9184f51acf26376ce8
Fix #17: Let teachers change students' teams via the web interface.

Add a new field to the bottom of the edit view, to allow editing of
the team via a dropdown box. This is generated from a generalised
implementation of the code that was originally used for the teams'
dropdown in the registration view, and will show the user's current
team as the pre-selected option.

Since the collection of available teams comes from the editor, not
the user being edited, make their user available to the edit view.
Ensure that the teams collections from the backend are stored in
the user objects for both the logged-in user and the current user
of interest.

Change-Id: I136ea5005150e4fa0c6efd8dd98077d8d9b4e66e
Add brackets for clarity.

Change-Id: I9e19e9bdb0e91895043ac9822777ce96b8028645
Split long statement over several lines.

For readability.

Change-Id: Icd72476ac824abde2e54051e52baea4a7d92768c
Move the select builder into the TemplateExpander.

This is a more suitable location for the function.

Change-Id: I6b04a9cea3efb9cea61265300a1ed66b26a91bf0
Rename variable to fit pattern.

This also avoids having a trailing underscore.

Change-Id: Icd32356e24440c8e75c9da2f2ed9c47ffcd46db0
Move handling of whether a user can admin a team into libnemesis.

This bumps the libnemesis module to pick up a new helper method,
and then introduces usage of it instead of our local team check.

Change-Id: Ia66cac296047467c9f19552ecd49afc34afe1252
Bump libnemesis to pick up code tidyups.

Change-Id: I25e8cc68a569796538c63a618f27eabc584d554e
Add API test for team fetching.

Change-Id: I0b5c89e8066c8e63210d23beef79973b729105b3
Add API tests for the setting of a user's team.

Change-Id: I1b770dfa5d713d963e0cbaac613af71f924f4c86
Merge pull request #43 from PeterJCLaw/fix-17

Fix #17: Let teachers change students' team via the web interface.