Clarify setup instructions
scripts: Implement refresh project token script

Fixes #281.
result: Account for 'lost' state in results tables

This should be rare since in most cases a cell where the
browser is lost will be occupied by a 'scheduled' or 'progress'
instead since if a client is lost, we immediately unlink it
from the job results and schedule a new one.

However if all clients for a run get lost, then (after run_max
times) it is kept in the job results, and then it will end up
in the page output, so we need an icon for it and not throw
a "Corrupt run result" error on the page :)
Remove default value for site_url in sql schema

A BLOB field cannot have a default value and site_url seems optional.
BLOB cannot have default values and errors on some systems when installing.

See http://dev.mysql.com/doc/refman/5.5/en/blob.html

Closes #275.
Fix overlapping alignment of dates on Job and Project pages
project: Fix pagination bugs

The "Next" pager was using the first row instead of the last
row so it appeared to shift only 1 row each page, instead of
shifting to the next page.

The "Previous" pager was broken in the same way and in addition
it didn't really reverse the results back because the return
value of array_reverse wasn't being used (unlike some other
php array_ methods, array_reverse doesn't modify by reference
but returns a new array).
job: Fix missing token error in reset-runs

Small typo which prevents reset all runs from working.

Fixes #286.
job: Change "swarm-wipejob-error" from id to class as expected by job.js

Closes #287.
project: Change default query limit from 25 to 10
Expose id, display_title and viewUrl consistently in the API for projects

Also updated JobPage to no longer compute the url manually.
Page classes should not be forming urls manually.
JobPage: Use display title for project instead of id
Add documentation around projects creation and jobs

Close #277
Merge pull request #267 from dcherman/clarify-setup

readme: Clarify setup instructions for non-root installs
README: Fixed link to license
Fixed various typos in comments

* migrateUaID.php
  Fixed minor typo: continueing -> continuing

* update.php
  Fixed minor typo: datbase -> database

* inject.js
  Fixed minor typo : surpressed -> suppressed

Closes gh-290.
Closes gh-291.
Closes gh-292.
Docs: Removed IRC channel links in CONTRIBUTING.md

GitHub doesn't support links with the irc protocol, so these were dead links.
Add .travis.yml
js: Conform with jQuery JavaScript Style Guide

* Update JSHint configuration and enforce new rules
  (mostly quote marks and removing unused variables).

* Whitespace (no space after last object/function argument,
  no space after "function" operator in anonymous functions).

* Remove dates from @author.

Ref #289
inject: Save a reference to setTimeout

In attempt to mitigate issues with setTimeout mocks, such as
provided by Sinon.JS.

Though usage of sinon should include teardown afterwards, the
inject hearbeat timeout might run when an asynchronous test
yields at which point it would get the wrong setTimeout.
gitignore: Remove obsolete ignore for *.pl files