fix negative array position at end of loop
make Zone's overriden methods be called

Fixes #57 - This changes how we call the methods in drawZoneName(), etc,
now we actually go through overridden methods in Zones.

Fixes # 56 - As we now have the proper behaviour of fill(), etc
overridden when in pickDraw

Fixes # 55 - ShapeZone now works properly, as we now override fill(),
etc in pickDraw

PGraphicsDelegate was made to extend PGraphics so that we could properly
make Zone's overridden methods be called.

This change caused the fill() to no longer work as expected for
pickDraw, so it was rewritten to use bitwise AND instead of Processing's
functions to set the color components. This matches how we read back
these colors in SMTZonePicker for our color picking.