Adding hash function to SceneInterface

I've added a hash function with an enum that computes different kinds of hashes (for Object, Transform, child names, etc) for a given point in time.

This will allow better use of caching mechanisms when loading scenes as well as use of instances in engines such as Gaffer.

Of course there's a chance. May be small chance because the location in the scene will also have to match in order to have a hash collision. Even smaller chance if people use SharedSceneInterface to keep handles open. 

I was hoping to leave this for later when the hash on IndexedIO was investigated. Do you feel strongly about implementing a 100% safe method in this pull request?