Add GistFile.size

Storing the size, and constructing with the size.
Adds a default size of 0.
Amend GistFile tests to include size.
Comma change for dicts in tests.

When constructing the dicts manually, end all of the lines with a
comma. This means that any future changes to add more items is a
one-line change instead of affecting multiple lines.
Add description to Gist.
Update tests with extra required field.

Needs descriptions now.
Update directory sketch.

Overview of general structure, since the structure has been updated.
Create a GitIgnore from values.

Add a helper.
Add test for GitIgnore values.

Testing GitIgnore.from_values() to make sure it works like expected.
Add caching test for the gitignore service.

Should be caching the results, so successive requests don't require
multiple API calls (for checking against the list overall).
Caching request for .gitignore template API.

Caches the requests against the overall list of available templates.
Minor comments.

Add some minor comments.
Test layout update.

Laying out the test so it makes more sense.
Refactoring Gist.

Given how the rest of the API is structured, can take out the extra
parameters from the constructor, and make the core paramater (the gist
ID) mandatory as well.
Removing redundant tests.

These tests are redundant in the new structure; the equivalent tests
would be akin to:

    gist = Gist('some_id')
    gist.public = True
    assert gist.public

Which is obviously of no benefit.
Extract the updating for the gitignore cache.

Extract out the update request for the gitignore template cache
to make it possible to call the cache check from a different method.
Add gitignore.get

Add in a method to get a specific .gitignore template by the template
name, from the GitIgnore API.
Extra documentation.

Add to the caching comments.