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.
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.
Added subdirectory argument to IECore.loadConfig().

This allows files from only a single subdirectory of each path in the searchpath to be loaded. This supports the idiom in Gaffer where there is a single environment variable for the searchpaths, with a subdirectory per application on each path.
Made ConfigLoader accept env var in place of search path.

This makes the most common use of the config loader a little less verbose.
Merge pull request #317 from johnhaddon/configLoader

ConfigLoader enhancements
Updated Changes and bumped version to 9.0.0-a3.