Removed InternedString reliance on IECore/HashTable.h.

Moved the hash function inside InternedString.cpp, and documented how it and the new Equal struct allow fast lookups with both types of strings.
Added InternedString( const char *, size_t length ) constructor.

This allows the construction of InternedStrings from substrings, without needing to create a temporary std::string.
Removed IECore/HashTable.h.

It is unused in Cortex now that the InternedString implementation is entirely private.
Merge pull request #338 from johnhaddon/internedStringConstructor

InternedString( const char *s, size_t length )