note the usage of the global file system.
change FileBlockStore to use the global file system.
Create a restore engine that can handle one or many jobs, and can be
used as if it only handles one.
Change RestoreManager to use RestoreManyEngine.
Make BlockSource family of classes out of RetrieveBlock family of
classes.
drop unused map builder.
replace RestoreEngine with RestoreManyEngine.
stop using RestoreFile
stop using RestoreManager
change to a progress flag instead of a progress counter in
KeyInputStream
stop using KeyInputStream.
Clean up RestoreEngineTest
get rid of a magic literal in FragmentOutputStream
Add FragmentSave to handle saving of files using random output.
Inject FragmentSave and ClearBlockSource into FileStoreFileGetMain.
make FileStoreTagGetMain tests easier to read.
change FileStoreTagGetMain to take a ClearBlockSource instead of
BlockStore.
Change FileStoreTagGetMain to use a FragmentSave.
Change FragmentSaveFile and FragmentSaveFileSystem to attempt to
create parent directories as needed.
Change FileStoreTagGetMain to rely on FragmentSave for creation of
needed directories, removing the dependency on FileSystem.