CCEffects - Simplify the CCEffectImpl initialization flow

Prior to these changes, an effect subclass called one of several initializers on CCEffectImpl of the
form:

initWithArg:arg
initWithArg:arg blarg:blarg
initWithArg:arg blarg:blarg flarg:flarg

Which all chained to the designated initializer (in this example, initWithArg: blarg: flarg:). The designated
initializer then did the following:

if (!arg) [self buildArg];
if (!blarg) [selfBuildBlarg];
if (!flarg) [selfBuildFlarg];

And subclasses could opt to override these builder methods. Instead of this sub-class calling
the super-class and the super-class calling back to the sub-class arrangement, remove all but
the designated super-class initializer and require sub-classes to use it. Also remove the overridable
builder methods from the super-class so the sub-class must supply all required initializer arguments
instead of not supplying them and instead creating them in the overridden builder methods.

This makes the super-class initializer call more verbose but it makes the overall flow more
straightforward. It also addresses potential initialization order problems with overridden builder
methods being called on the sub-class before the sub-class's initializer body could execute.

There is one remaining issue with the render pass blocks capturing self before self is assigned
by the call to the super-class initializer but I will fix that next.
CCEffects - Move the uniform translation table to CCEffectRenderPass

This is so the render pass blocks get the translation table from the render pass instead of
having to capture self when they are created.
CCEffects - Stop capturing self in the render pass blocks

Because the blocks are constructed prior to calling (self = [super init]) we shouldn't
capture self in them. Instead, capture the owning interface class weakly.
Merge branch 'metal/effects2-EffectImpl' into metal/effects3-InitializerCleanup

Conflicts:
	cocos2d/CCEffectLighting.m
CCEffects - Fix initialization of conditioned ivars
Merge branch 'metalPrep/Step2-EffectImpl' into metalPrep/Step3-InitializerCleanup

Conflicts:
	cocos2d/CCEffectLighting.m
Merge branch 'metalPrep/Step2-EffectImpl' into metalPrep/Step3-InitializerCleanup

Conflicts:
	cocos2d/CCEffectBloom.m
	cocos2d/CCEffectBlur.m
	cocos2d/CCEffectDropShadow.m
	cocos2d/CCEffectLighting.m
	cocos2d/CCEffectStack.m
CCEffects - Fix bugs in blur, bloom, and drop shadow

When I refactored CCEffect into CCEffect and CCEffectImpl, I broke these effects.
Updates to their properties were not being properly propagated from the interface
to the implementation because these effects will create a new implementation
based on changes to the blur radius.

This also moves some duplicated setup code into a shared function in CCEffectUtils.
Merge branch 'metalPrep/Step2-EffectImpl' into metalPrep/Step3-InitializerCleanup
Merge branch 'develop' into metalPrep/Step3-InitializerCleanup

Conflicts:
	cocos2d/CCEffectLighting.m
CCEffectOutline - Adapt to initializer cleanup
support for Mac OS X Retina displays
Merge branch 'develop' into metalPrep/Step3-InitializerCleanup
CCEffects - Handle shader compilation failure

If shader compilation fails, CCEffect initialization returns nil. If CCEffectStack detects this it retries
effect creation with stitching disabled.
CCEffectStack - Missed a case where CCEffectImpl creation can fail
Merge pull request #1110 from stuartcarnie/retina

support for Mac OS X Retina displays
Updating Cocos2D version to 3.4.1. This will be tagged release-3.4.1-beta.1 and pulled into SB internal builds.
Merge pull request #1106 from thayerandrews/metalPrep/Step3-InitializerCleanup

Cleanup CCEffectImpl's initialization flow
CCEffectsTest - Adds a second sprite color + effects test

This one tests all effects in both stacked and unstacked configurations and catches
a few effects that did not properly support sprite colors.
CCEffects - Sprite color fixes

Effects with non-default stitching requirements did not define any inputs and this
prevented them from handling sprite colors. Add custom input snippets that work
with the stitching requirements and correctly support sprite colors.