don't make a copy when hashing substrings

As [discussed on the mailing list](https://groups.google.com/d/msg/julia-users/hxfR70Ro-lI/WucvdlXltK8J), one gets significant performance improvements by not making a copy when hashing a `SubString` of a `ByteString`.

No new method is required, just a slight generalization of the old `hash(::ByteString)`.