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/

Place your member variables in one place, it's easier to find them again when looking at the code later then. (The rest are at the end of the struct).