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/

Isn't refactoring and fixing up TinyGL code the point of this GSoC project? When you move code around, you can also refactor and do fixups on it. (Especially since there is no clear way to see that the code came from some other file)