Added deferred shading example with morph animation.

Started with extraction of deferred shading code snippets into more reusable components.
Refactored deferred pointlights example to use common code with deferred morphs example.

Specular parameters will eventually need to go into G-buffer.
Renamed renderer.shadowMapCullFrontFaces => renderer.shadowMaterialSide

Default value is THREE.BackSide (use backfaces of objects when rendering depth map), other valid value is THREE.FrontSide (use frontfaces of objects when rendering depth map).

See discussion in #2683
Simplified bumpmap shader for deferred normal pass.
Renamed renderer.shadowMaterialSide => renderer.shadowMapCullFace

Default value THREE.CullFaceFront, other valid value THREE.CullFaceBack.

These constants also go into renderer.setFaceCulling( cullFace, frontFace ) where they replace strings:

"back"  => THREE.CullFaceBack
"front" => THREE.CullFaceFront
"frontback"    => THREE.CullFaceFrontBack
""/0/undefined => THREE.CullFaceNone

See discussion in #2683
Added frontface direction constants.

These replace frontFaceDirection parameter strings in renderer.setFaceCulling( cullFace, frontFaceDirection ):

"cw"  => THREE.FrontFaceDirectionCW
"ccw" => THREE.FrontFaceDirectionCCW

See related cullFace constants changes in #2683
Replaced basic shader with custom shader in deferred shading.

This is in anticipation of combining more geometry passes, need modifiable shader.
Removed unused properties from test_scene.js.
Added style strings support THREE.Color.

So far these work:
new THREE.Color( 'rgb(255,0,0)' );
new THREE.Color( 'purple' );
new THREE.Color( 0xff0000 );
Renamed getContextStyle and setContextStyle to getStyle and setStyle.
Updated builds.
Merge remote-tracking branch 'alteredq/dev' into dev
Support for THREE.Color( 'rgb(100%,0%,0%)' ) and capping values.
Changed WebGLRenderer opaque pass to use NoBlending instead of NormalBlending.

This was causing a major headscratching in deferred rendering where I just couldn't get rid of data alpha seeping into color channels.

Watch out for unexpected changes. I believe NoBlending is correct for opaque pass, but there could be some demos that depend on incorrect behavior with NormalBlending (getting transparency without setting "material.transparent" flag).

Most likely troubles could come from using transparent PNGs without setting "material.transparent".
THREE.Color support for '#ff0000' and '#f00'.
Merge remote-tracking branch 'alteredq/dev' into dev
Fixed more examples that relied on NormalBlending.
Fixed handling of MeshFaceMaterial when material indices were not set in faces.

This happens when you use MeshFaceMaterial for a single material model (that's what was going on in Lucy example).

Alternatively, we could set face.materialIndex by default to 0 instead of "undefined". This kinda makes sense, just would need to be checked if it wouldn't break things.
Changed face.materialIndex default to be 0 instead of "undefined".

See discussion in https://github.com/mrdoob/three.js/commit/d951fcbcfa8efa8b7cecc10075e5e78be4027bac
Started to experiment with properties packing in geometry passes in deferred shading.

Using vec3 <=> float conversions from @benaadams

For the moment just testing how it works (had to fix blending in WebGLRenderer for this). Seems with two RGBA float passes we could eventually get quite decent material range.