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
Add sections to test.

Change-Id: I3568904ff744c2092535ce6f16d8fe9b955cb0ef
Introduce local variable for clarity before extending

Makes it easier to work with rather than doing a map lookup each
time around.

Change-Id: I19c8fcbf0c75aea2645fab4379e6e576b5039927
Remove redundant second arugment

This appears to have been left over when we switched to handling
locks via helpers rather than locally.

Change-Id: I00137acdb038a5a24cbc6755139bba2604effea5
Introduce much more useful variable names

Change-Id: I89294228239418d164aa41825f08e784b185441e
Slightly simpler submodule expansion

Change-Id: I4309f2a0f25072e49f6ff0107993de2da9a5531b
Add a Travis CI runner script

Change-Id: I34c6e7cf03a298521c125bb74b4164edb996000c
Have travis install for test rather than deploy

While the metapackage was a good idea, we don't really need to be
installing a full apache stack just to test the functionality.
Especially as the tests run on the command line anyway.

Change-Id: I0bd4853d6e66310b2641124898d67bf293d3a9a4
Remove items already present, add Jasmine-Node

Change-Id: Icf279278130dba71bf220138df550474d3e24ef5
Have Travis always print the full output

Putting it into a log file is no use as we can't see those files.

Change-Id: I50655f6127b9acaa8f4c71338b96a33a8ec3a446
Add python-poster dependency Travis uncovered

Change-Id: I66a72cbd775133ce0f99d033cc83407af399e66f
Don't pause if we got a lock

I'm not sure how this slipped through previously, as it adds 10ms
per lock to each request completely pointlessly. The biggest impact
this has is on the poll/poll endpoint, which iteracts with all the
user's projects, though all requests should be sped up by this fix.

Change-Id: I32854e6559f70ef8b5db367adb0f8db3338c2791
Avoid repeat creation of repo wrappers we already have

Have the updateRepository method accept a repository instance rather
than fetching one itself. This avoids the need to re-check the repo
is valid, get a lock (etc.) which is redundant given that in both
real usages we already need a handle on the repo anyway.

This is likely to improve the success rates of the file/* endpoints
as they only need to get the lock on their target repo once, rather
than twice per request.

Change-Id: I9bf2dbdbe8681d4c3988c5a21a970d28bd6496de