Give Distribute better support for handling timevarying transforms

Introduce 'pseudocopy' operation which, which if called on a time-invariant
transform, returns the transform, but if called on a time-varying transform
returns a copy of the current state of the time-varying transform. Composite
transforms apply pseudocopy to their children (if they contain any time-varying
transforms).

Introduce a wrapper class that uses Resource to let time-varying transforms act
like time-invariant transforms, currently only used by distribute (it is
assumed that any work that is being distributed is in fact independent).