2857: fix flaky time-sensitive tests

Allow tests to inject a mock Time object into Blob, in order to generate
consistent behavior for tests that rely on permission signatures.

Closes #2857.
Merge branch 'master' into 2857-collection-tests
2857: strip signatures from manifests before testing equality.

As Brett observed, the "post" method in these tests mutates its
argument. For a valid test, we must ensure that the source data has not
been transformed into the result data.

For tests which do not care about validating the signatures, we just
strip out the signatures from the result manifest before comparing it to
the source.

Refs #2857.
Merge branch '2857-collection-tests'

Closes #2857.