Add API HTTP caching support to RBTools.

RBTools now understands standard HTTP caching mechanisms, allowing it to skip
re-fetching data from a server that it already had. This speeds up access to
API resources that both support caching and haven't changed since the last time
it was accessed by RBTools.

The cached data and metadata is stored in an SQLite database within a
subdirectory of the user's home directory. The database schema is versioned,
and if the version differs from what RBTools expects, the current cache will be
invalidated and the schema will be updated.

The following caching headers are supported:

* Cache-Control
* Pragma
* Vary
* Last-Modified
* ETag
* Expires

The cache is not mandatory for RBTools to function, so it won't interfere with
scripts on locked-down servers.

A 'rbt clear-cache' command has been added that will invalidate the cache.
This is particularly helpful when testing or if something ever goes wrong.

Reviewed at https://reviews.reviewboard.org/r/6504/