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/

Since there's a ton of template-arguments, I'd appreciate a comment above this that lists what each argument is (just once), as it's tedious to go back and forth to see what is what to verify. Might even consider making some local constants that you use instead of true/false to increase readability.