Light effect editing - Limit shininess range

It used to be [0..100] now it's [0..1] to match an upcoming change to the underlying
effect implementation.
Merge remote-tracking branch 'upstream/develop' into develop
Light node hiding / showing

- Add "Show Lights" menu item to the "Document -> Show" menu. This toggles the
hidden state of all light icons in the stage.
- Toggle hidden states of individual lights via the visibility column in the sequencer.
- Link the state of the "Show Lights" menu item to the hidden state of all lights. If all
lights are hidden, the menu item is off (checkmark hidden). Otherwise the menu item
is on (checkmark visible).
- Add willChangeValueForKey / didChangeValueForKey for showLights and showJoints
at the end of -[AppDelegate replaceDocumentData:]. This makes sure the corresponding
menu items are synchronized with state of the document after loading.
- Move the "Show Joints" menu item into the "Document -> Show" menu.
Light editing - Add a default light to the scene

If there are no lights in the scene already, use a default light that is centered in the stage.
This light is not saved with the scene, it's only a convenience for editing. If there are lights
in the scene but they're all disabled then the default light will not be used.
Stage light editing

Add a "Stage Light" sub-menu to the "Document" menu that allows the user to adjust the
stage light when it is enabled. It is still disabled automatically if the user adds lights to the
current scene.
Initial commit of color channel offset effect files
SB integration for CCEffectColorChannelOffset
Merge remote-tracking branch 'origin/develop' into develop
Light editing - Refactor lighting stuff out of AppDelegate

This addresses Nicky's feedback regarding the addition of even more code to AppDelegate which,
as he noted correctly, is already overly full of code from every other SB feature.  Instead of putting
lighting control code directly into AppDelegate, introduce the LightingHandler class to act as the
owner of lighting functionality. AppDelegate has a LightingHandler and calls to it when necessary
but otherwise it stays out of the way and lets LightingHandler do all the work.

In order to coordinate lighting visibility changes between LightingHandler and SequenceHandler,
this change introduces the LightVisibilityDelegate protocol and a light visibility notification. The
delegate protocol is for external actors like the SequenceHandler to tell the LightingHandler that
the visibility of a single light has changed. The notification goes in the other direction and is for the
LightingHandler to tell external actors that the visibility of all lights has changed.
Merge remote-tracking branch 'upstream/develop' into develop
Lighting Effect editing - Rework specularColor access

Move it from CCBPEffectLighting to EffectLightingControl. This simplifies CCBPEffectLighting
and removes the need for some key fiddling that must be done in willChangeValueForKey.
Merge branch 'develop' into effects/colorChannelOffset

Conflicts:
	SpriteBuilder/SpriteBuilder.xcodeproj/project.pbxproj
Color channel offset editing - Move individual offset component properties into the control
Effects editing - Fix build warnings and other cleanup

- Add @optional postDeserializationEffectFixup to EffectProtocol to fix compiler warnings.
- Remove unused "@property (nonatomic) CCBPEffectHue *effect" from CCBPEffectHue.
- Remove EffectDescription property declarations from CCBPEffect classes that have them.
Not all effect classes declare them (or other members of EffectProtocol) so remove them to
make things consistent.
- Make CCEffectNodeProtocol's NSArray *effects property strong. One header had it as assign
and one didn't specify (making it strong by default).
Merge remote-tracking branch 'upstream/develop' into develop
Merge branch 'effects/colorChannelOffset' into develop
Merge pull request #1205 from thayerandrews/develop

Light effect and node editing