Refs #8176 Add algorithm to Mantid.
Refs #8176 Fixed algorithm output
Refs #8176 Change algorithm parameter names to remove space.
Refs #8346 Change workspace averaging to only use unique names.
Refs #8346 Implement better way of filtering of runs.
Add non-functioning workspace property re #8398

Signed-off-by: Karl Palmen <karl.palmen@stfc.ac.uk>
Begin to write code to put params into workspace re #8398

My original plan of putting the table into a POCO XML document
then putting that into the workspace like LoadParameters does
is not on, because LoadParameters does something dodgy, that
will sometime need fixing and should not be replicated.
So I'm forced to put the parameters in directly. This would lead
to better code, but I presently have no idea how to do it.

Signed-off-by: Karl Palmen <karl.palmen@stfc.ac.uk>
Merge branch 'master', remote-tracking branch 'origin' into feature/8176_indirect_trans_alg
Refs #8176 Tidy output to table.
Removed unused method and forward declaration. Refs #7636.
refs #8561. Add new options.
Create the method outline for the uploadURL. Refs #7636.
Generate upload URL in ICat4. Refs #7636.

- In order to publish (upload/PUT) we need to know the dataset the user wants to PUT that file to. This is "calculated" in the `getDatasetIdFromFileName` method, which uses the related filename (extracted from path or workspace in the algorithm) & obtains the related datasetID.
Added `CatalogPublish` algorithm. Refs #7636.
Corrected indent in cmakelist. Refs #7636.
Added correct ICAT call to method. Refs #7636.
Fix compiler warning. Refs #7636.
Fix saving a WorkspaceGroup in SANSBatchMode

It previously just saved the last thing in the group with the group name.
Now the group is unrolled and each workspace save individually.
Refs #8575
Removed unused exception. Refs #7636.
Set encoding type. Upload now works correctly. Refs #7636.

- Added `IsDataFile` method to detect if the file being uploaded is datafile, in order to set the correct mode.