Amend the URL regex.

Add in `+` as a valid symbol.
Add a test for gitignore.get

Adding in a test for .get() to confirm the caching and matching.
Extract match to a private method.

Let it share the matching code.
Matching returns a string.

Matching to a name in the cache returns the direct name instead of a
list of all possible matches (of which there will be exactly 1).

In the case that there is not a match, it returns an empty string for
now, which works with boolean checks (`if not match`, etc) and makes
sure that it won't throw any problems with None type.
Documentation.

Update match with a docstring.
Add extra fields for GistFile.

The extra fields that can be present.
Massive file check.

Add .is_massive() to check for massive files that are truncated but
can't be fetched using the raw_url; massive files require local clones
of the gist repository instead.
Return a GitIgnore object.

Return one of the nicer objects instead of a raw JSON response.
Bandaid fix for a broken test.

The services tests are bigger and more complex with hand-written
response bodies. This fixes the broken part of the test where it served
back invalid responses, but there should be a search for a better
solution still as well.
Refactor URL code.

Removing the deduced Gist.url code, and the Gist.from_url code as well.
Given that the GistService uses the Gist.from_values helper, it's not
a required helper any more, and the URL is provided by the API.
Remove redundant tests.

These tests are all testing the deduced URL code, or a helper that is no
longer present. While the URL part of the Gist does need to be tested,
it needs more generic tests and some kind of response library to assist
instead.
Removing redundant imports.

Doesn't need the URLs any more.