Optimization in ChordNGram

Removed extra transformation composition possibilities to try when making
new n-grams. Dramatic speed increase.
Extracted Transformation-Finding Algorithm in ChordNGram

So now other objects will be able to use the transformation-finding
algorithm without having to create a new ChordNGram object every time.
Modification to ChordsLists Experiment for Previous ChordNGrams Commit

The ChordsLists experiment uses the new find_transformation() method,
rather than creating a new ChordNGram object and accessing the instance
variable _list_of_connections
Added Unit Tests for experimenter.IntervalStatistics.interval_sorter()
Updated Tests for Changes to Program

Caused in commit cb53b4ffcd71cd7a1b7013c9de4cff05b19c1663
Refactor experimenter.py

- Experiments no longer know their controllers (un-does commit
  e07ddb32f1d39f55ccda653e2695c0b1c424027b)
- __init__() in Experiment subclasses raises KeyError when the proper
  settings aren't present in ExperimentSettings
- Superclass constructor is called more standards-wise in Experiment
  subclasses
- Experiment subclasses take advantage of the variable-assignment in the
  superclass constructor