Replace CGAffineTransform with GLKMatrix4x4

(Note: this is going into the brand new develop-v4 branch, not v3.x)

Replacing CGAffineTransform usage internally. Using 4x4 transforms avoids the 2x3 -> 4x4 conversion step that happens a lot, and prevents a lot of ambiguities between rendering and input coordinates. This also opens the possibility for adding 3D transforms to a category. Performance seems unaffected, but was only lightly tested.

This is a very straightforward, 1:1 conversion of the functions to prepare for the next set of transform related changes. I did not attempt to further simplify the resulting code. I figured that should wait until later since many more transform changes are being discussed.

One question: I changed 4 public methods in CCNode.h to return GLKMatrix4 instead of CGAffineTransform. Is it worth cluttering up the v4 API with backwards compatible methods and make new methods to return the 4x4 matrices? I would guess these methods are rarely used directly by users. It's hard to get a good estimate from a GitHub code search since they are used internally quite heavily.