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