Remote Runner: Run multiple workers with one image

It is possible for multiple workers to share a single image by detaching the changes file.

This is required, otherwise multiple OS processes would attempt to write to the same file (GlamorousToolkit.changes) simultaneously, either failing with a write lock, or corrupting the file.

There are two flags that allow the image to be shared:

--detachChanges will tell GT to write any changes to a process specific changes file on disk.

--detachChangesFromFileSystem will tell GT to write any changes to an internal, memory only, file.

In both cases references to the existing .changes file will still work.

In an image with one of the above flags set, the size of the internal changes and sources files can be determined with:

| sizes |

sizes := Dictionary new.
(PharoFilesOpener classVarNamed: #Default) ifNotNil: [ :filesOpener |
	filesOpener class = PharoFilesOpener ifTrue:
		[ sizes at: #changes put: filesOpener changesFileOrNil size.
		sizes at: #sources put: filesOpener sourcesFileOrNil size. ] ].
sizes.