Exit out of DrawGradient that uses PolyPolygon much faster

There are two DrawGradient(...) functions in OutputDevice. One uses
a PolyPolygon, the other uses a Rectangle. The Rectangle version
exits out a lot faster, the PolyPolygon one seems to try to getting
clipping regions and a Graphics instance first which is entirely
unnecessary if the drawing mode is DRAWMODE_NOGRADIENT! Therefore,
I'm bailing out of this function much faster, bring the two functions
into line with each other.

Change-Id: I882862ab82a93c2c9dfd5fc86f2507926d28aaea
DrawGradient( const PolyPolygon&... etc) gets graphics instance too early

The OutputDevice::DrawGradient function that takes a PolyPolygon checks
for a graphics instance far too early. It then checks it again when it
actually needs it, but we really only need to get it once.

Change-Id: I2426dfe2e5c03f0e8e3939b53b16c99afe637812