More progress with Experiment:

 - Experiments and variants are cached by the new ID field, rather than UUID and name respectively.
   This makes it easier to refer to them in code.

 - Added a new BaseExperiment class: a stripped down Experiment intended to be subclassed by third parties.
   BaseExperiment does not check or use myna.* settings, so features like stickiness and targetting are not available.

 - Implemented a new Experiment class on top of BaseExperiment. This is where basic dashboard features such as
   stickiness and targetting are implemented.