WIP: split testing support in the LMS.

Adds a split_test_module XModule, that can choose one of its children
to display, based on a get_condition_for_user API added to the runtime.

To test, add something like this to an xml course, or make equivalent
 tweaks in mongo.

 <vertical url_name="split_test_vert">
    <split_test url_name="split1" experiment_id="0" condition_id_to_child='{"0": "i4x://MITx/6.00x/html/split_test_cond0", "1": "i4x://MITx/6.00x/html/split_test_cond1"}'>
       <html url_name="split_test_cond0">condition 0</html>
       <html url_name="split_test_cond1">condition 1</html>
    </split_test>
  </vertical>

Also needs an experiment configured in the course policy json: e.g.

        "user_partitions": [{"id": 0,
                                      "name": "Experiment 0",
                                      "description": "Unicorns?",
                                      "version": 1,
                                      "groups": [{"id": 0,
                                                        "name": "group 0",
                                                        "version": 1},
                                                        {"id": 1,
                                                        "name": "group 1",
                                                        "version": 1}]}]


(This particular snippet will work inside a course with org MITx
 and course name 6.00x)

TODO:
 * arch review.  Is this a reasonable way to do it?
 * analytics -- actually add the user tags to all events
 * add a "hidden" attribute to blocks, have verticals and ab tests pass
   it up the tree, have sequentials and the accordion actually hide things.
  (There is already a way to hide certain things in the course accordion.
   Ideally this would be made consistent with that method.)
 * test all the things