WINTERMUTE: Rewrite getOptimized in a more linear fashion
WINTERMUTE: Macro'ify safe enqueuing function

While this is abhorrent I believe this is better than paying the price for a function call.
Can always be reverted later via some search+replace.
WINTERMUTE: Recycle existing rect in the C= case
WINTERMUTE: Count saved pixels for debugging/profiling
WINTERMUTE: Tidy up debugging-related #defines
WINTERMUTE: Update arbitrary limits for debugging

(Note: these are used only in debug assertions to avoid
immediately running out of memory if leaks are introduced)
WINTERMUTE: Disable rect debug by default
WINTERMUTE: Explicitly hunt for duplicates in consistency check
WINTERMUTE: Remove unused isHuge method
WINTERMUTE: bailout = false by default

Quick profiling seems to show that *only* blitting is of any relevance here
WINTERMUTE: Debug assertion - make sure we never enter getFallback.
WINTERMUTE: Print warning if too many rects

(Should never happen in real world usage unless bug)
WINTERMUTE: Dirty rects are on by default.

Thanks to wjp's patches and overall improvements there is no particular
convenience in skipping dirty rects; overflow (=bug) is still an issue though
WINTERMUTE: Debug assertions
WINTERMUTE: Remove unused constants
WINTERMUTE: Revert cace0c

Of course we need fallback if we don't have _clipRect.
WINTERMUTE: Remove outdated comments
WINTERMUTE: Tidy up addRect procedure
WINTERMUTE: Remove unused public functions from rect container
WINTERMUTE: Tidy up getFallback function