Rename CCEffect initWithUniforms: vertexUniforms: ... to initWithFragmentUniforms: vertexUniforms: ...
CCEffect stitching - WIP - Start experimenting with effect input declarations

Instead of putting texture loads from cc_PreviousPassTexture directly into a an effect function's
source, provide a mechanism for function's to declare the inputs they expect. With the declaration
of each input, include a snippet of code that can be used to load the input value from the previous
pass's texture if the function is the first one in a chain of functions that are stitched together. If a
function is first in a chain, it's loader snippet is inserted into the stitched shader, if function is later
in the chain, its input is passed from the output of the previous function.
CCEffect stitching - Shouldn't have committed this
CCEffect stitching - WIP - Add stitch support flags

Using the stitch flags, effects can declare whether or not they can be stitched to preceding or
trailing effects or neither.
CCEffect stitching - WIP - Add inputs to brightness and contrast

And remove a line of unused GLSL from saturation.
CCEffect stitching - WIP - Add multiple begin, update, and end blocks to CCEffectRenderPass

This is groundwork for merging passes together during effect stitching. After two passes are merged
together along with their shaders, the original begin and end blocks will still need to be executed. Since
multiple passes will be collapsed into one, a single pass needs to maintain more than one begin block /
end block pair.
CCEffect stitching - Switch NSMutableArray to NSArray
CCEffect stitching - WIP - Tweak the stitch flags interface
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.
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
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.
CCEffect stitching - WIP - Remove some dead code