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
fix to appease compiler by changing jni / bridge kit.
Support spritebuilder fixed layout on android.
adding logging to direction for scaling.
Flexible layout support.
Pull request adjustments.
Do not use bridge_ internals
Merge pull request #1108 from mauiaaron/develop

Do not use bridge_ internals
support for Mac OS X Retina displays
Animation support for CCLightNode properties

- Add support for the scalar float valued properties like intensity, ambientIntensity, etc.
- Implement copyWithZone in CCActionTween so it works correctly on action sequence
completion. Without this change we end up with an uninitialized object, the key string is
ill, and the property setting code throws and exception.