Remove create in catalogFactory. Refs #9084.
Tidied up catalogFactory class and header. Refs #9084.
Merge remote-tracking branch 'origin/master' into feature/9084_create_catalog_manager
Added initial structure of catalogManager. Refs #9084.
Added catalogManager implementation. Refs #9084.

- Missing destroyCatalog and destroyCatalogs as changes to compositeCatalog need to be made to expose the member variable.
- create will not currently work as there is no way to obtain the sessionID of multiple catalogs.
Add implementation to remaining catalog manager methods. Refs #9084.

- Added new methods to expose the compositeCatalog container to CatalogManager.
Remove cpp warning. Refs #9084.
Update algorithms to use catalogmanager. Refs #9084.

- `CatalogDownloadDataFiles` and `CatalogPublish` are edge-cases in that they need to call `getCatalog`.
Removed unused headers from catalog algorithms. Refs #9084.
Remove getCatalogs from catalogManager. Refs #9084.

- Removed use of compositeCatalog in catalogManager. The active catalogs attribute is used instead.
- Removed now unnecessary methods from compositeCatalog.
- Updated algorithms that use catalog manager.
- Log each catalog out when destroyCatalogs is called in CatalogManager. This ensures the ICAT server knows the user has logged out.
Move compositeCatalog and catlaogManager to API. Refs #9084.
Added new catalog session class to API. Refs #9084.
Merge branch 'feature/9084_create_catalog_manager' into develop