Replace assumption of lowercase uids with actual normalisation.

This allows uppercase names to be added in the future without
requiring further IDE changes, and simultaneously ensures that the
IDE can be successfully used by a user that doesn't know the casing
of their username. We now have a normalisation step performed after
a successful login which ensures that the IDE uses the version of
the username that is cannonical, rather than what the user entered.
This ensures that their groups are correctly found, while still
allowing them to login using the wrong case.

Change-Id: I1274cf0d8e5a0958f6f6cff8f86c008374f909fd
Update pyenv to sr2014.4

Changes since sr2014.3:
 - Option of splitting up Robot construction
 - Support for custom Ruggeduino firmware
 - Removal of JointIO API

2013-11-29 Patch set 2: Include matching updates in pyenv-dummy.

Change-Id: Iaf50525aa889d6dda62044d077ae69ebde111b43
Tidy the behaviour of GitRepository->putFile.

Previously, it would return FALSE when 0 bytes were written to the
file, despite this being a perfectly valid thing to do. Instead,
it now passes the same return values as file_put_contents would.
Also update the method comment with this information.

Change-Id: I4babbd7090526bec8686512166038a070f33af60
Merge "Update pyenv to sr2014.4"
Present the user with a nice message if export fails.

This replaces the previous alert() box that was being emitted.

Change-Id: If3482152ef55ee88337e29bdc1494ff4b899f25c
Fix #2177: Detect and error about zip creation failures.

In the case that the archive building script (currently pyenv's
make-zip) fails with a non-zero exit code, we should emit an error
at the user so that it's clear what's going on. Previously, the
backend creation appeared successful, but nothing actually happened.

Change-Id: Icdd367a196a2d2766761a6f49d89f12754f132a6