add SHA.nativeClone method to clone SHA-1 hasher correctly
add MD5.nativeClone method to clone MD5 hasher correctly
refactor to better encapsulate functionality; rename vars to clarify types