CCEffectRefraction - Tweak the refraction math a bit

While experimenting with reflection I came up with some modifications to the refraction effect that
yield better results (IMO). I've also come up with a mapping of min and max refraction values that
yield a nice range of visual results (again IMO). 1.0 results in maximum magnification of the environment
image, 0.0 is no change, and -1.0 results in maximum shrinking of the environment image. Please
note that this is based on experimentation and what looks good and I'm not trying to make this an
accurate optical simulation. For instance you might ask:

Q: Why does the refraction value scale the output of the refract() function instead of being used as the
IOR ratio input to refract()?
A: I tried both and I found that the former yields better looking results than the latter.

Q: Where do the min and max refraction values come from?
A: I experimented with a wide range of values and found that these yield pleasing results while
minimizing unexpected behavior.
CCEffectRefraction - Condition input refraction values

Map [-1..1] to the min and max values used by GLSL.
CCEffectReflection - Initial commit
CCEffectReflection - Fill out the guts of the effect

This is mostly copied from CCEffectRefraction.
CCEffectReflection - Add fresnel reflectance term to reflection calculation
CCEffectReflection - Tweak reflection math

Since we do not currently support cube mapping, using reflect(viewDir, normalDir) to compute
texture coordinates doesn't yield very nice looking results. It does create some nice distortion
but (to my eyes at least) it doesn't read as reflection and looks more like refraction. By experimentation
I've found the following looks better:

texCoordOffset = normalDir * (1.0 - dot(viewDir, normalDir))

Also, clamping the offset texture coordinates to [0..1] doesn't look as good for reflection as it does for
refraction. Instead, feed them through a cosine function so out of range values reflect.
CCEffectRefraction - Update comments - No functional change
CCEffectRefraction - Remove enableFresnel property since it can be disabled with the appropriate inputs.
CCEffectsTest - Add reflection test
CCEffectsTest - Tweak the reflection test
CCEffectGlass - Initial commit
CCEffectGlass - WIP
CCEffectGlass - Flesh out all the refraction and reflection math

A bunch of this should be refactored into a common location that is shared by
CCEffectRefraction, CCEffectReflection, and CCEffectGlass.
CCEffectsTest - Add a glass test.
CCEffectReflection - Fix effect function name
Test data for CCEffectsTest and the associated license file.
CCEffectsTest - Update reflection, refraction, and glass test data.
CCEffectReflection / Glass - Fake reflection math tweaks.

Increase the power that (1 - nDotV) is raised to and then scale the result
back into the range [0..1]. Since nDotV is proportional to the cosine of the
angle between N and V, raising it to a power > 1 has the effect of flattening
out the center of the curve which looks better to me when applied to a
spherical normal map.

I should have been scaling (1-nDotV) all along since it was ending up in the
range [0..2] which resulted in excessive compression of the environment map
image at the silhouette edges of the normal map. This only gets worse when
raising to a power so the scale is even more important here.
Add CCEffectUtils - A location for shared effect functions
CCEffects - Refactor reflection, refraction, and glass effects to use shared util functions