Update to pyenv sr2014.6

Changes since last IDE update:

 * Motor controller firmware update
 * Throw exception if Robot is instantiated twice
 * New splashscreen
 * Funnelling of log stuff through logging module
 * Kill motors on USB unplug
    (Although I don't think this last one is actually working)
Update the copyright dates in the LICENSE file.

Harvested from the git logs, and ommitting updates to the submodules.
Also explicitly note that this license does not neccesarily apply
to the code in the submodules.

Change-Id: I3e0edc743afc8fb7ac74f1aeb7072bf2a0d493f4
Block project deletion by non-admins.

This isn't supported properly, and would likely cause issues if
teams stared actually using it on the live IDE (the endpoint has
been found and highlighted on the forums). Rather than need to
pick up the pieces, blocking its use should prevent too many issues.

I've left it in place so that the test teardowns which use this can
continue to do so, and to simplifiy the process of implementing this
if/when we do want to support it properly (once we figure out how).

Change-Id: Ide6d69bd4a1c9ce39e39df71885a6bb3ecb2d8e3
Fix the Installed-Size property in the deb.

Otherwise we get an error when trying to install the package.
Update pyenv to sr2014.7

Changes since sr2014.6
 * Disable power board firmware updates.
Set team-status folder in test which creates it

While this test does really need to create the team-status folder,
it will end up doing so via the TeamStatus constructor. Ensure that
the folder created doesn't clash with the real one by overriding the
config for the duration of the test.

Change-Id: Ie76fb0a3f1f2d3c1ab593ed2c4d20fc0ba5b5025
Update the pylint error pattern

This allows it to match the pyline 1.1.x series message style,
though this needs fixing properly as it appears this output format
is now deprecated (see #2508).

Change-Id: I52dfea43f6bd04a0195db9b552ad6f15a541dafc
Make proc_exec much more useful

When told to catch the result of the process, have it return a dict
style array with the raw information from the process. This allows
it to be used as a wrapper around proc_open without any loss of
information returned.

Previously there was no way to access the stderr of the process,
which lead some code to use proc_open and thus lose out on the
logging provided in proc_exec.

Change-Id: I62095d406e1fdefe4c7eaa9f745c0f06803b44c9
Switch linting to use proc_exec

This is better than having them do their own things with proc_open
as it means we get consistent logging of the processes being launched
and any failures they encounter. This was made possible by the plumbing
in b6b56d78188be67, since we need access to the actual exit code and
stderr stream in one case.

Change-Id: I5ebaf30fe426e6959a5bbaf95135dec99d35758f
Update doc comment to match d19b497e341e4.

Change-Id: I2827e1f6f41eefd1f5df2f31c4b02bc2bf14097c
Test helper for a value in a range.

Change-Id: I08f632f1f61364dad7014f0ce3dbcc59fbd8b61f
Fix comment.

Change-Id: I29f0ce94008c5aeea074b5354ec989bbbe53c438
Avoid linting the reference file.

While pylint may choose to load it as part of the run, we don't
really care about the results from it. Its presence is therefore
merely a distraction which provides a false pass result among the
results.

Change-Id: I7010ce182757bc2598380ddc26e201264fd4397d
Don't save an unchanged file just to fire a callback

Separate the early exit logic from the checking of the callback,
and fire the callback even when we can exit early. This avoids not
one, but two backend calls which we don't need to make when there
are no changes (since file/put always triggers a file/compat-tree).

Change-Id: I6eb8e6f95e16eace277731e2c56d25d591f66559
Enable limiting the duration of called processes

We've recently hit an issue where pylint wasn't terminating in a
timely fashion, this is a plumbing fix which will enable a fix for
that.

Patch set 2: Improve test reliability by being less strict on the
             overall duration when checking the timeout is applied.

2014-07-05 Patch set 3: Stylistic improvements from review.

Change-Id: I664ee580a47c118840a2c8c83ca61f3b85efdf09
Limit the time pylint can run for

It appears that some inputs can cause it to run for a very long
time, which is bad for a number of reasons. This ensures that it
can't run for more than a couple of seconds, avoiding that issue.

2014-07-05 Patch set 2: Rebased.
2014-07-05 Patch set 3: Switch to using 'null' as the default timeout
                        value to match no-timeout value.

Change-Id: I60b0580a7d9be9362604dfbfd86831a708fd8a11
Merge changes I60b0580a,I664ee580

* changes:
  Limit the time pylint can run for
  Enable limiting the duration of called processes
Update the static logo with a smaller file.

This is compressed via https://tinypng.com/, and appears visually
indistinguishable despite being a 70% smaller file.

Change-Id: Ia278dbaeea36dbb6badd8ff3dd19d5dc07028c88
Fix line endings.

Change-Id: If2f97f490393e0655beaa96a93d1e317153970f4
Fix and test unlock of file not actually locked

Previously this would emit a PHP error in one case, which wasn't
what was intended.

Change-Id: I3c3b0119f6e8268e2bb25b63fd42d23d59424999