CCEffect stitching - Supply the render pass as an argument to the pass blocks

Originally the pass was captured by each block when the block was defined but this doesn't
work with effect stitching. When effects are stitched together, multiple passes are merged
into one pass but the blocks for the original passes are maintained. Since a block now needs
to reference a different pass than the one that created it, the pass must be passed in at call
time.
CCEffect stitching - WIP - First pass at effect stitching logic

- Identify sets of effects that can be stitched together
- Generate a new shader from the functions of the stitched effects
- Merge the render passes of the stitched effects

A few things do not work yet (or are not handled well):

- Name collisions are fatal (they cause an assertion failure after compilation
fails).
- Multiple effects of the same type cannot be stitched together.
Merge branch 'develop' of github.com:cocos2d/cocos2d-iphone into develop
Configuration for shader precision defaults.
Merge branch 'develop' of github.com:cocos2d/cocos2d-iphone into develop
Make effects performance test adapt sprite layout to the sprite size
Don't create empty effect stacks

We need to handle this but right now we don't so don't do it.
CCEffectRenderer - Misc cleanup
CCEffectRenderer cleanup - Move post-render composite into the renderer

This code was previously duplicated in CCSprite and CCEffectNode but now it lives
within CCEffectRenderer.
Fix nil effects on CCEffectNode

Just render the node's children with no effects.
Handle empty effect stacks

If the renderer is passed an empty effect stack it just draws the sprite as if no effect was
applied at all.
Merge remote-tracking branch 'origin/develop' into develop
Merge branch 'develop' into thayer/effectStitching
Fix for zoom when highlighted
Merge branch 'develop' of github.com:spritebuilder/cocos2d-swift into develop
CCEffect stitching - WIP - Start working on name mangling

To prevent identifier name collisions when stitching shader source together we need to prefix
identifiers with unique strings. For now this string is <effect_debug_string>_<effect_index_in_stack>.
The stitcher is generating valid GLSL but a few items still need to be addressed:

- Varying values
- Uniform name strings in effect update blocks. The name strings are hardcoded but the stitcher
is changing them in the GLSL source. We need a way to update the names that the blocks use
when updating the uniform dictionary.
- Handling default CCEffect uniforms like cc_PreviousPassTexture.
Fix Divergence of animation over time when missing Zero time keyframes.
Merge pull request #814 from jtwigg/develop

fix debug define & animation Divergence.
CCEffect stitching - WIP - Remove some dead code
CCEffect stitching - WIP - Don't apply name mangling to default effect uniforms