Implements ThreadLocal[MessageDigest]

As suggested in PR #8 discussion comments.

May be premature optimisation, but it's not a lot more code/work and it's only in one place. Makes using HashingKeySanitizer a little bit faster :)