Fixes #296 Make the sql stream id hasher pluggable and specifyable during wireup. If none specified, the Sha1StreamIdHasher is used.
Also contains protective code to ensure that any specified hasher doesn't produce an invalid hash value (null, empty, whitespace, > 40 chars)
Merge pull request #297 from damianh/OptionalHash

Fixes #296 Make the sql stream id hasher pluggable and specifyable during wireup.