Adding hash() function to SceneInterface.

Added implementation to SceneCache and LinkedScene with a naive approach, more so that we update the interface first.
HoudiniScene and MayaScene currently throw exceptions.
Fixing the tests to work with sets of hashes.

... and reverting to the original bound code for the hash call.
Making hash for child names independent on time for SceneCache.
Updating header documentation for the function hash.
Computing hashes based on the samples available.

Proper computation is done now for each kind of hash except for non-leaf locations of HierarchyHash. Left a todo for it.
Computing special case hashes more appropriately.

Also updating the tests.
Using cast that is compatible with OS X as well.
Merge pull request #315 from valeriebernard/master

merge maintenance 8 changes into master
Fixing return value for newly added parameter.

This was missed in the last merge from maintenance.
Removed deprecated IECoreGL::Selector::loadIDShader() method.

The pushIDShader() method should be used instead.
Added IECoreGL::Selector::postProjectionMatrix() method.

This is useful if the OpenGL projection must be changed after the construction of the Selector (e.g. to use an orthographic projection for overlays).
Merge pull request #316 from johnhaddon/glSelector

Selector
Adding a TODO comment to replace the hash for scenes files.
Changing the semantics of HierarchyHash to include the transforms.
Defining SceneInterface::hash() as a function that adds the typeId.

Each derived class is now responsible to call the base class implementation as appropriate.
For LinkedScene, that only happens when the location includes the main scene and when the location or the information is purelly derived from the linked scene, the class simply forwards the call to the linked scene.
For SceneCache we always call the base class.
Update Changes
updated version to 9.0.0-a2
Merge pull request #307 from ldmoser/sceneInterfaceHash

Adding hash function to SceneInterface
Removed outdated todo item from IECore.ConfigLoader.py.
Made ConfigLoader execute files within a directory alphabetically.

Before the order of execution was dependent on the order returned by os.walk(), which can vary from machine to machine and installation to installation. This was responsible for at least two problems in Gaffer going undetected until after release, here's one of them :

https://github.com/ImageEngine/gaffer/commit/e8cc0a236370b34db4e8ac70fd9385e8e2148a70

Note that this does have the potential to expose futher problems in config setups where the config files were relying on whatever order they happened to have been executed in the past - if so those config files will need to be fixed.