sha_prefix should not be random

Hi there - for reasons I can't figure out, `Utils::sha_prefix(string)` essentially returns a completely random hash every time you call it.  This is unexpected (at least to me), and prevents query caching where it's used as the join table alias.

I think the random behaviour originated in 713eb2919a4e63052d85e2aa9dfc4a59480514e4 (where it started out as a unique identifier), and got subsequently more confusing with be398de9ac6c9b801fdcb7f51ffe136fd2f68a42 and d9f0b77c09c5f9aab6099fc4c8d18326de58e842

How about this change?