Shader replacement core functionality.
Added tests for Program, create variants in Playback.
Assorted fixes following code review.

Made several variables private.
Avoided using goog.bind.
Condensed several asserts and added a few new ones.
Made program Disposable and looked at clearWebGlObjects_ again.
Log when linking failed.
Removed commented out code and an unnecessary log statement.
WIP intermediate buffer proof of concept
Functional (buggy) intermediate buffer proof of concept
Intermediate buffer proof of concept cleanup
Backup/restore additional states, test highlighting
Fixed highlight, backup/restore instancing.

Also ignore do not edit calls to non-visible framebuffers.
Created webglstate.js to backup and restore state.
Backup/restore additional parameter states.
Backup/restore attributes.
Backup/restore instancing of attributes.
Moved intermediate buffer from playback into its own class.
Clean up resources using Disposable.
Renamed testing button, fixed extra whitespace.
Targeted highlighting functionality, no UI. Unorganized.
Added highlight visualizer, cleaned playback to use it.
Disable depth test and clear buffers, fixes vectortown highlighting.
Added draw call highlighting UI, removed old UI.