Calculate hash digests on a per plane basis (Fixes #10073)

There are some edge cases, such as electron microscopy, where the stack
size is huge.  Often 1000's of planes, which causes the byte size of a
timepoint to be larger than 2.1GB.  As the hash digest algoritms we use
are CPU limited anyway there is very little justification for reading
the entire timepoint anyway.  Calculating it on a per plane basis is
much safer and should have no performance implications at all.

Rebase of gh-660 on `origin/develop`.