Added Visualizer framework and Overdraw Visualizer.

Featuring:

* New colors for overdraw in draw call highlighting.
* Delayed initialization for OffscreenSurfaces.
* DrawCallVisualizer parent class with event handling and calls struct.
* Toggleable overdraw visualization for all calls up to now in a step.

Fixes #484
Fixed WebGL restart with multiple identical contexts.
Display statistic messages for overdraw and highlight.
Draw clears, refactored overdraw classes.
Merge pull request #491 from ScottTodd/contexts-fifo

Fixed WebGL restart with multiple identical contexts.
Fixes and refactors following code review.

Changes include:

* Added Visualizer suffix to Highlight and Overdraw.
* Pass native objects instead of dictionaries.
* Cleaned up OffscreenSurface initialization.
* Refactored IVisualizer interface into Visualizer abstract class.
* Refactored Visualizer usage within Playback, avoids extra closures.
* Visualizers now use pre and post event handlers.
* Fixed a color conversion issue for overdraw calculation.
* Added more colors to the overdraw visualization.
* Cleaned up some type annotations, comments, and names.
Refactored Visualizers, updated color choices.

Duplicate code between overdraw and highlight was trimmed.
Highlight can now be toggled like overdraw.
Triggering is also clearer: visualizeSubStep instead of trigger(opt_args).
Tweaked mutator setup and clarified visualization toggling.

Highlight and overdraw now properly toggle depending on the
current substep and target substeps.
Merge pull request #492 from ScottTodd/overdraw

Added overdraw visualization.