Added base publishing dialog class. Refs #8537.
Added publishing dialog ui file. Refs #8537.
Override generated form layout. Refs #8537.
Populate combo-box with user investigation IDs. Refs #8537.
Added browser file selection to GUI. Refs #8537.
Added custom publish dialog to catalog menu. Refs #8537.
Updated tooltip message. Refs #8537.
Minor comment improvements. Refs #8537.
Use investigationID NOT datafileName to obtain datasetID. Refs #8537.

- Changed the query so that rather than searching for a dataset based on a datafile name we now use the investigationID (which is provided to the user in the GUI).
- I also updated all related variable names in each catalog for readability.
Simplify and tidied CatalogPublish algorithm. Refs #8537.

- Use investigation number instead of datafile name for searching.
- Removed unused method (extractFileName).
Forgot to add license/documentation to dialog. Refs #8537.
Improved algorithm input validation. Refs #8537.

- Prevent invalid naming of the file being saved to the catalog.
- Inform user we are using the filename or workspace name as the name of the file we are publishing. This occurs if the user has not provided a name for the file to be saved as.
Add optional message to GUI. Refs #8537.
Disable buttons if user cannot publish. Refs #8537.

- If the user is not an investigator on any investigations then they cannot publish. As such, I have disabled the input fields and `Run` button on the GUI.
Correct catalogpublish subcategory. Refs #8537.
Update documentation for catalogpublish. Refs #8537.
Log message if nameInCatalog has not been set. Refs #8537.
Cancel algorithm if it fails. Refs #8537.
Prevent hang, and improve optional message. Refs #8537.

- The dialog will not appear correctly if the user is not logged in rather than hanging. This was due to making a request to ICAT within a session ID as "myData" is called within the CatalogPublishDialog.
Improved algorithm documentation. Refs #8537.