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.
Add setSession to CatalogSession. Refs #9084.
Add facility parameter to catalog login. Refs #9084.
Pass parameters by reference in CatalogManager. Refs #9084.

- I have to create and pass in an empty string to getCatalog (instead of "") otherwise linker errors occur.
Update login method to return a session. Refs #9084.

- Throw exception in the compositeCatalog for the login method as it no longer performs the correct composite functionality. (It could not return all the sessions for each catalog the user logs in to, just the last.)
Use CatalogSession in ICat4Catalog. Refs #9084.
Removed unnecessary sessionID in catalog algorithms. Refs #9084.
Updated ICat3Catalog to use new session class. Refs #9084.

- Made login method return the new session.
- Removed destructor from ICat3Helper.
- Removed unnecessary method `setReqParam` from ICat3Helper.
- Removed invalid `isvailidSession` (it never makes a reques to verify the session)
- Updated `listInstruments` and `listInvestigionTypes to __append__ to the list rather than reassigning it entirely.
Removed old singleton session. Refs #9084.

- Removed references to session from unit-tests. Th
- Updated `CompositeCatalogTest` to throw an runtime on login method.