Support checking hashes on streams

This adds a "through" stream that checks hashes as it goes.  That allows you to do the entire checking of a hash in memory without any buffering.

Will merge if there are no issues raised with this by 20313-06-08T17:00Z