Migrates cache strategies from Gitlab into the gem
This pulls in the code from https://gitlab.com/gitlab-org/gitlab/-/blob/6ecd1edc04b2e18261ea1f967d8d78b4f834a99f/app/experiments/application_experiment.rb#L55
It provides a nice autoloading functionality so if you're not using caching, it's not taking up load time.
Additionally adds the concept of incrementing, and an improved interface for getting/setting arbitrary attributes that we can use for rollout strategies and other things.