TINYGL: Dirty rects system.

This PR contains an implementation of dirty rects system.
You can find more information behind the design and implementation in the following blog posts: 
http://subr3v.blogspot.co.uk/

How big a percentage of the runtime is spent here? (If a noticeable amount, then sorting the checks below from most likely to be different to least likely, might help)