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
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
CCEffect stitching - WIP - Don't apply name mangling to default effect uniforms
CCEffect stitching - WIP - Move some code around
CCEffect stitching - WIP - Apply name mangling to varyings
CCEffect stitching - Finish name mangling

Effects now have a translation dictionary which can be used to map original uniform names
to their mangled variants. When a set of effects are stitched together, the stitcher creates a new
translation table and updates the stitched effects with it. The current implementation has the side
effect that one CCEffect object cannot be used in multiple effect stacks but I think that's acceptable.
At least until we see that there is a need for the sharing of effects between stacks.
Fix vertical flipping of multi-pass CCEffects

This parallels Scott's texture flipping changes in bcc02e8b08243945a6d6abad8dc8d2c062790c91.