Speeding up zone painting.

This merges the scope and instance drawing code into a single loop and
adds the required methods to the event iterator to support this. In the
common case now (cached colors and no label) there are no event type
lookups required and things are about 30% faster. By having just a single
loop it will make it easier to add the 'merged' drawing in a future CL
(which can draw about 9million events in 30ms instead of 1.5s).

Fixed an issue with the zone painter not being tall enough to hit test
instance events properly.