Added DOI endpoint to Facilities.xml. Refs #8538.
Added tests for doi in CatalogInfo. Refs #8538.

- Also added missing testing for external download url (IDS).
Added doiEndPoint method to CatalogInfo. Refs #8538.
Added gSoap generated code for endpoint. Refs #8538.
Add registerDatafileDOI to interface & inherited classes. Refs #8538.
Refactor CatalogPublish error handling. Refs #8538.
Merge 'origin/master' into feature/8538_icat_publish_dois. Refs #8538.
Add properties and logic to catalogPublish algorithm. Refs #8538.
Use getRef for ease of use. Refs #8538.
Rename parameter on registerDOI. Refs #8538.
Make SSLContext method generic via templates. Refs #8538.

- This means we can make use of this for ICATProxy and the DOIProxy objects.
Make throwErrorMessage generic via templates. Refs #8538.
Renamed method. Refs #8538.
Added DOI catalog implementation. Refs #8538.
Added DatabaseID to investigation workspace. Refs #8538.

- Removed investigationID check as it's handled on the DOI server.
Use specified namespace instead of ns1. Refs #8538.
Updated readme to include namespace generation. Refs #8538.

- The `-n` option overrides the `ns` namespace prefix. This is required to prevent warnings if several end-points have been generated without a namespace set.
Add make public checkbox to publish GUI. Refs #8538.
Set DatabaseID property of Publish algorithm via GUI. Refs #8538.
Fix include. Refs #8538.