InternedString( const char *s, size_t length )

This adds a new constructor for `InternedString`, allowing construction from a substring without needing to create a temporary `std::string`. It also removes IECore/HashTable.h, moving all implementation details of `InternedString` into a .cpp file.

This is necessary for some optimisations I'm making in Gaffer's string substitutions.