CCEffects - Refactor effects into CCEffect and CCEffectImpl

This is something we've thought about for a while as a way to enable different
implementations as optimizations but I'm doing it now in preparation for adding
Metal support.

With this change, the functions, uniforms, varyings, and render passes all move
into CCEffectImpl subclass (or really an effect specific subclass of CCEffectImpl)
while the public initializers, convenience constructors, and properties all stay in
the CCEffect subclass.

For now, initializing an effect instance immediately creates the corresponding
effect implementation instance and the implementation does not change for the
lifetime of the effect.  This need not always be the case though and it is possible
to switch the implementation dynamically based on effect property values.

For example, the bloom effect currently has a conditional in its shader based on the
luminance threshold value. If the threshold is 0.0 or 1.0 though, we could select
a different implementation where the condition is replaced with the hardcoded
pass or fail path as an optimization.
CCEffects - Rework the distance field and lighting effects to CCEffectImpl
CCEffectsTest - Re-enable the distance field tests
Merge branch 'metal/effects1-RenderPassRefactor' into metal/effects2-EffectImpl
Merge branch 'metalPrep/Step1-RenderPassRefactor' into metalPrep/Step2-EffectImpl
CCEffectLighting - Build fix after latest merge from upstream

passInputs.node becomes passInputs.sprite.
Merge branch 'metalPrep/Step1-RenderPassRefactor' into metalPrep/Step2-EffectImpl

Conflicts:
	cocos2d-ui-tests/tests/CCEffectsTest.m
	cocos2d/CCEffect.m
	cocos2d/CCEffectBloom.m
	cocos2d/CCEffectLighting.m
	cocos2d/CCEffectStack.m
	cocos2d/CCEffect_Private.h
Merge branch 'develop' into metalPrep/Step2-EffectImpl
Merge remote-tracking branch 'upstream/develop' into metalPrep/Step2-EffectImpl
CCEffectOutline - Adapt to CCEffectImpl refactor
Merge branch 'metalPrep/Step2-EffectImpl' of https://github.com/thayerandrews/cocos2d-iphone into develop
Merge remote-tracking branch 'upstream/develop' into develop

Conflicts:
	cocos2d/CCEffectLighting.m
Merge remote-tracking branch 'origin/develop' into develop