Expire cache on weekly basis
Expire cache on weekly basis

Normal apps use strategy based on {{ checksum "Gemfile.lock" }}
but we as a library don't commit that file. We run mutation testing on newest
versions of Rails etc.

Cache in CircleCI is immutable and stored once.

Let's use new cache key every week to cache newest state of dependencies.

It's not a problem if we restore old cache. Bundler will just take a
little more time to install uncached dependencies. We try 3 potential
keys for restoration.

We also expire cache when Gemfile is changed or gemspec.

More on how this works on CircleCI: https://circleci.com/docs/2.0/caching/

Issue: #286

mpraglowski/rails_event_store,RailsEventStore/rails_event_store,arkency/rails_event_store,arkency/rails_event_store,mpraglowski/rails_event_store,RailsEventStore/rails_event_store,RailsEventStore/rails_event_store,arkency/rails_event_store,mpraglowski/rails_event_store,RailsEventStore/rails_event_store,mpraglowski/rails_event_store,arkency/rails_event_store