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.