Change to units in Task metadata files

I have changed the content of the resource usage in Task metadata to make the units consistent when accessing the *MaxResidentSetSize field (see DM-20970). Previously the value in that field depended on where you ran it. On macOS it was reported in bytes but on Linux it was reported as kibibytes. With the new change the units will always be in bytes.

If you have code that accesses these fields from the Task or quantum metadata you can check for the __version__ field in the metadata. If that field is present (and nominally has a value >= 1) then the units will be in bytes. If there is no __version__ field then you have platform-specific units and will need to know where you ran the processing.

Note that __version__ is part of each task’s metadata; thus in getFullMetadata you have keys like:

pipelineTask.__version__
pipelineTask:subtask.__version__

Yes. Metadata is filled up per task and there is no way to know if somewhere else in the hierarchy has already noted the metadata version number.