The hash is not displayed big endian, but rather as a byte-reversed
hash as a hexidecimal string, so document it as such.
While here, speed up the function. Some benchmarks:
BenchmarkShaHashString 2000000 996 ns/op
BenchmarkShaHashStringOld 100000 22701 ns/op
Add the word 'string' to the error string so if this is printed, it
will be clearer that it was a hash string decode that failed (as
opposed to other errors creating a ShaHash from a byte slice) and
change 'chars' to 'bytes', since the string length is measured in
bytes, not UTF-8 code points.
ok @davecgh