Added experiment controls on the frame painter.

Clicking on each experiment control applies the visualizer state for that experiment.

Fixes #505.
I figured that each visualizer that affects state could use ``JSON.stringify`` to store its state data then ``JSON.parse`` to restore later. The data would be keyed by a unique identifier string for each visualizer (``'scv'`` for ``SkipCallsVisualizer`` here).

``wtf.replay.graphics.Visualizer.equalStates`` (below) then does a string compare on each property (checking both ways to ensure that the same number of properties exists in both states.