use GitHub blobs API

instead of raw.githubusercontent

at the request of GitHub support.

This also fixes the blob->tree redirect, so that test is unskilled.

Still some testing to do before merge.
Merge pull request #281 from minrk/blob-api

use GitHub blobs API
apt-get update on travis

failing with 404 on libcurl4-gnutls-dev
remove unused flake8 dev-requirement
cache Content-Type headers

cached content is currently being served as 'text/html'
Use GitHub auth when fetching blob API

add GitHubClient.fetch, which adds GitHub auth to a regular fetch
fix typo in github token auth

key is `access_token`, not `token`, so anyone using GITHUB_API_TOKEN would not actually get authenticated requests
forward url parameters on /url[s] requests upstream

closes #286
remove `?create=1`

This was added as a way to detect whether links come from the front page. It’s no longer necessary because we have an explicit list of those URLs in frontpage.json

also makes the path to frontpage.json configurable,
because why not?
Merge pull request #284 from minrk/cache-content-headers

cache Content-Type headers
Merge pull request #285 from minrk/github-auth

some fixes for GitHub auth
encode upstream query parameters as last url part

instead of forwarding url parameters from one server to another
Merge pull request #289 from minrk/rm-create

remove `?create=1`
Merge pull request #287 from minrk/forward-parameters

forward url parameters on /url[s] requests upstream
better error messages for upstream errors

mostly affects the 400 page

people trying to view a gist that GitHub refuses to serve will see:

> The error was: GitHub will not serve raw gists larger than 10MB

- explicit error for gist 403 for blob too big
- include upstream body if it’s short and plain-text (e.g. from GitHub API)
add parse_header_links from requests.util
add pagination to gist and repo lists

and simplify the near-identical table listing templates,
since this would have required copying the same content in three templates.
center page links
sort repo list by recent activity

default is alphabetical, which is rarely desirable.
Merge pull request #291 from minrk/403-too-big

better error messages for upstream errors