Fix 2 issues with new-line.

— Apply patch from @glazedkoala. Fix the issue where Label is reused
with new-string being smaller than previous one. With fix character is
not displaced any more.

— _width logic was broken for long time. If CCLabelBMFont is created
with some width say N, then expectation is to see new-line once string
is out-of bound.
     This effect is more visible where user is updating label
dynamically (like appending single character)
CCLightNode - Add to OS X target
Merge remote-tracking branch 'upstream/develop' into develop
CCEffects - Refactor CCEffectRenderPass

CCEffectRenderPass was serving two purposes: 1) To pass static information to the effect renderer and 2) To receive information
from the renderer and convey it to the begin, update, and end blocks.  This dual purpose "I'm an input and an output" business was
starting to get a little hard to keep track of so I'm busting it up into two classes: CCEffectRenderPass is the static stuff that the effect
is passing to the renderer. CCEffectRenderPassInputs is the stuff that the renderer is passing to the effect's blocks.
CCConfiguration - Print the GLSL version with the other GL info
CCShader - Add raw shader compilation path

Unlike the existing path, the raw does not prefix the supplied source with the
standard headers.
CCShader - Convert built-in shader compilation to use the raw path
Fix whitespace to make it consistent with its surroundings
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.
Converting CCPackageManager's installPath to a relative path.
New path behaviour is relative to the caches folder.
CCPackageInstaller working with relative path.
CCPackage's installURL property renamed to reflect relative nature.
CCPackageCocos2dEnabler working with relative paths now.
CCEffectLighting - Lighting collection fixes

- Don't filter the light list based on distance. I tried this optimization but its causing some
problems so I'm removing it for now.
- Provide an interface for clearing the light collection's group name list. This is mostly just
used for the tests since I want to be able to reset the group names / masks with each test.
- Add a method to CCLightCollection that returns the ambient color sum of all lights matching
a supplied group mask. This is necessary since we want lights to contribute their ambient
color even if they are not in the set of closest K lights that is used by the shader.
CCPackageManager working with relative paths now.
Tests fixed.
Merge branch 'v3.3' into develop
CCEffects - Rework the distance field and lighting effects to CCEffectImpl
CCEffectsTest - Re-enable the distance field tests
Merge branch 'v3.3' into bugfix/package_persistency_ios
Restored serialization key for former installURL of CCPackage. Backwards compatible again.