Fix getGitHubDir failing sometimes because it didn't respect GitHub API pagination.

Fixes #174.

- If the response contains a Link header, then fallback to requesting "refs/heads/master" and "refs/tags/go1" by name.
- Add hasLinkHeader return value to getJSON(), returns true if `Link` header was present.

Note that it currently assumes "master" has to be a branch, and "go1" has to be a tag. I don't know what's the best thing to do (and what if "master" is both a branch _and_ a tag, for example?). Please see discussion [here](https://github.com/golang/gddo/issues/174#issuecomment-47871865).
After a closer look...

I would probably try to implement getJSON as it was before (no hasLinkHeader) in terms of the get and decoding steps in two independent functions. NewDecoder essentially wants what getReader gives you.

If getJSON was only 2-3 lines of code, it would be feasible to paste them in the one place you need hasLinkHeader, or make yet another helper function. For this purpose you need something a lot like getReader, but that still gives access to the Headers.

An alternative approach to the same result is to implement an independent getJSONWithHeaders, leaving getJSON as it was. Then follow up by extracting some functions from those for common bits as desired (decodeJSON, etc).

That's my advise for a refactoring exercise. Whether or not the you tackle that or push up the bug fix as is is between you and the maintainers. :)