Replaced OpenGL 3 function calls with their 2.1 extensions

On Linux we can make a 3.3 context with backwards compatibility with previous extensions. On OSX we can either create a 3.2 context with /no backwards compatibility/ or we can create a 2.1 context. Since we're still using some 2.1 functionality which hasn't made it into 3, we need to use a 2.1 context on OSX, so we use one everywhere to keep things maintainable.

In the longer term the best solution is to move to pure OpenGL 3.3 everywhere.
Adding IECoreGL::Shader::lambertFragmentSource.

Also passing fragmentP through in defaultVertexSource, adding a no-op defaultGeometrySource, and a constantFragmentSource.
Using LightingMode in IECoreMaya DisplayState

DisplayState::baseState now accepts an optional parameter for lighting mode. If the value is not kLightDefault,
then the lambert shader from IECoreGL will be used to override the ShaderStateComponent.
IECoreNuke::LensDistort file parameter hash.
Changed the append() method to evaluate the file path before hashing it. This fixes a bug where TCL scripts in the file sequence knob were not getting evaluated before being hashed.
Added a required namespace specifier.
Merge pull request #64 from johnhaddon/gl2Compatibility

Replaced OpenGL 3 function calls with their 2.1 extensions
Merge pull request #65 from andrewkaufman/glLightingPreview

Maya GL Lighting Preview