Added overdraw visualization.

The indirection around the active state calls hurts performance and the readability of the code. It requires that a bunch of places in here and subclasses be aware of the active state and check it before doing anything, which makes it difficult to touch the code without breaking things. It'd be nice to disable the visualizer entirely by not even passing it events/etc if it is disabled, then none of the code needs to be aware of that state.