Make subject.experiment_bucket return nil if not in experiment.

When dealing with more than 2 buckets, it's common to want to use this to
branch on the bucket number.

(Tried using the "not in experiment" shared context, but it did not cause the
old code to fail.)
Add pluggable, composable experiment sources.
Drop old cache. Supplanted by cache source.
Add facility to override the bucket a specific user falls into.

Useful for dev/qa. Also add a test helper that uses this so you don't need to
rely on brittle stubs.
Rewrite loader: cleaner, simpler, transactional, new config, move into lib.
Fix Loader invocation from rake task.

Also silence Loader logging by default. In typical usage, only the rake task
will probably want to output anything.  In most cases, say syncing experiments
for test setup, it should be silent.
Fix Cache source when looking up experiments by symbol.
Make rack namespace match the gem name.
Automatically load configuration from config/experimental.yml in Rails apps.
Don't use thread-local storage for configuration.

It was not persisting through spork. This should not need to be thread-local
as it's set on configuration, before any real work is typically performed.
Merge pull request #19 from howaboutwe/adds_experiment_restart_capability

Adds the ability to restart experiments
This is no longer true
Merge branch 'master' into overrides

* master:
  Better test for when the experiment is not ended
  Adds the ability to restart experiments

Conflicts:
	spec/models/experimental/experiment_spec.rb
Experimental::Experiment#restart resets the start date
Merge pull request #20 from howaboutwe/restart_experiment_resets_start_date

Experimental::Experiment#restart resets the start date
Merge pull request #18 from howaboutwe/overrides

Bucket forcing