Adds first pass at trim() function

In this implementation, trimming is done based on when the item was
written to the cache.
Replaces last-modified time with a simple queue
Marks core methods final
Adds autotrim feature

In order to make ImageCache as easy to use as possible, this adds a
feature to automatically trim the disk cache in order to satisfy a given
storage size. By default, this size is determined automatically as a
fraction of the available free space. Cached items that haven't been
accessed by the given ImageCache instance will be purged first, followed
by items that haven't been accessed recently.

All the parameters of autotrimming can be configured, including the use
of autotrim at all.
Adds tests for trim
Sets HTTP connection timeout to 20s