Lots of new code

Adds GLProgramState
Merge branch 'improved_glprogram' of https://github.com/super626/cocos2d-x into improved_glprogram