CCEffectRefraction - Convert refraction's normal map from a texture to a sprite frame

Checking this in since I don't want to lose it but it's not working yet so I'm putting it into a WIP
branch.
Merge branch 'develop' into thayer/refractionNormalMapSpriteFrame

Conflicts:
	cocos2d-ui-tests/tests/CCEffectsTest.m
CCEffectsTest - Back out an experiment in the refraction test that shouldn't have been committed
CCSprite - Remove a redundant assignment

setTextureRect immediately assigns its rotated parameter to _textureRectRotated so there is no need to assign
frame.rotated to _textureRectRotated and then pass _textureRectRotated as the rotated parameter. Instead just
pass frame.rotated as the rotated parameter.
CCSprite - Refactor setTextureCoords

Change it from the instance method setTextoreCoords to the class method textureCoordsForTexture... All of the
instance variables that it used to read are now passed in as parameters and the result is returned to the caller.
It is the caller's responsibility to copy the results to the appropriate texture coordinate set in the sprite's vertices.
With these changes the method can now be used for computing both the base texture coordinates and the normal
map texture coordinates.
CCEffect - Remove unnecessary checks for nil in buildShaderUniforms

Just initialize _shaderUniforms to a new NSMutableDictionary whenever buildShaderUniforms is called.
CCEffect - prepareForRendering returns detailed status, not just BOOL

- prepareForRendering now returns an enum indicating the following possible statuses:
  - CCEffectPrepareNothingToDo: There was nothing to do.
  - CCEffectPrepareSuccess: There was something to do and it was done successfully.
  - CCEffectPrepareFailure: There was something to do but we failed to do it.
  The default implementation returns CCEffectPrepareNothingToDo

- CCEffect and its subclasses now implement readyForRendering which indicates whether
  or not prepareForRendering needs to be called before the effect can be used for drawing.
  The default implementation returns YES but effect stack returns NO if its flattened pass
  list is dirty.
CCEffect - Rework shader uniform management

The node (sprite or effect node) to which an effect is attached is now the owner of the uniform dictionary
that is used during effect rendering. When an effect is attached to a node, the effect's uniforms are copied
into the uniform dictionary of the sprite / node to which it is being attached. Later during rendering, the
effect renderer retrieves the uniform dictionary from the node and hands it to the render passes as they
are executed.

Because effect stitching can modify uniform names, the uniform dictionary needs to be updated if
prepareForRendering is called and does any work on an effect stack. This means that the renderer no
longer calls prepareForRendering and it's instead the caller's responsibility to call it when it is necessary.
The renderer will assert that an effect is ready for rendering before it uses it.

The effect (hah) of all of this is that the node effectively (hahaha) becomes the local scope for uniform
variables and the uniform dictionary maintained by each effect is a template for the uniforms that need
to be created in that local scope. We can't reverse this relationship (copying a node's uniforms into the
effect's uniform dictionary) because that would prevent us from attaching an effect to more than one sprite
which is a desired goal of the system.
CCEffects - Add normal map sprite frame to CCSprite and CCEffectRefraction

- As discussed with Viktor, it seems that normal maps will be widely used by enough
  effects (reflection, refraction, lighting) that it makes sense to add them directly to CCSprite.
- To go along with this, a new default shader uniform is added for the normal map sampler.
- The texture coordinates for the normal map sprite frame are mapped to the preexisting
  second texture coordinate set / varying variable cc_FragTexCoord2.
- The normal map uniform is now removed from CCEffectRefraction in favor of the default
  uniform.
- If an effect has a normal map, it overrides the one on the sprite. If neither is present but
  refraction is applied to a node, nothing bad will happen but your refraction will look weird.
- CCEffectsTest is updated to set the normal map on the sprite in one case and on the effect
  in the other.
CCSprite - Add a comment delineating the transform section of the header
Merge branch 'thayer/refractionNormalMapSpriteFrame' into develop
Merge remote-tracking branch 'upstream/develop' into develop

Conflicts:
	cocos2d/CCEffectGlow.m
CCEffectBloom - Don't get the pass's shader uniforms from the effect anymore
CCEffectsTest - Add a repeated action sequence to change the refraction effect's normal map
CCEffectRefraction - Combine the sprite's color and main texture with the refracted environment texture

For now the color, main texture, and refracted environment are multiplied together. This is based on a couple
glass shader examples that I've found. We can adjust this if necessary though.

Also add color textures for the refraction test that match the normal maps.
CCEffects - Fix the "some properties don't return the same value that was set" problem

I half fixed this a little while ago but introducing internal properties that store the conditioned
versions of the public properties. The problem is that in overriding the setters for the public
properties I wasn't actually setting the public ivar. Dumb.
CCEffects - Add default initializers to the headers for all effects
CCEffects - Refactor all CCEffect initializers to route through the designated initializer

Also corrects a typo which lead to "vertex" being "vertext" in some places.
CCEffects - Remove some commented code
CCEffect - Move the guts of the designated effect initializer into a separate method

This way we can call it after initialization time if we need to completely rebuild an effect.