Extract cache into its class

Create an in memory cache class which will expunge the whole cache after
the ttl in one go.

Pass this cache into the skin method.

Use this cache for the shared template resolver and turn off the default
caching in that resolver.

This means that the main template and all component templates will
always remain in sync so that the main skin template can provide the
stylesheets for the components and they won't become out of sync with
each other.

Ideally in the future the cache can be further abstracted out to a
proper caching server.

Also reduce the cache time to 5 minutes so templates are updated faster.
Instances of Skin are always created in the `app.rb` and I have updated that to always pass the cache in: https://github.com/alphagov/slimmer/pull/84/files#diff-c6920201d3112bf38861ab905d47ce6bR31

This just abstracts the cache from this object as appose to abstracting it so it could be passed into slimmer.