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.
Added a method to the SceneShapeInterface to return the current time.
Corrected a typo.
Added support for geometry snapping to the SceneShape.
Added include guards to enable geometry snapping only on API versions that are greater than 2013.
Updated the changes log.
Fixed a bug with the NDC point calculation.
Simplified the snap() method by using pre-existing methods.
Changed the query of the nearest vertex to a point to a comparison in object space rather than world space.
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
Duplicating GLGroups at link locations for automatic instancing. Still have to rename the groups as we duplicate them.
First pass at hosting IECore::Objects natively in Houdini.

Added GEO and GU implementations. Still several things missing, including ability to create them, viewport rendering, and JSON translation.
Added JSON support for GEO_CortexPrimitives.

CortexPrimitives may now be saved/loaded to hip, bgeo, and geo files.
Added utility method to set a single string for all elements in the given range
Added option to load IECore::Objects as GEO_CortexPrimitives.

Also promoted AttributeFilter to all SceneCache nodes, which allows the parameter values to be set recursively during expansion.
HoudiniScene supports GEO_CortexPrimitives.

Ideally this would be handled by the converter factory function, but that will require some significant changes, so just handling it in readObject for now, which solves the problem for ROPs at least.
SOP_SceneCacheSource now correctly erases filtered prim vars during modify.

This saves both time for prim var tranformation and memory when using the Cortex GeometryType.