Cleanup to SHA implementation, making things a lot cleaner.

I also added update/finalize routines for multi-block hashing. I touched up & reran the unit test and everything checks out on that end, too.