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.
Merge branch 'feature/9084_create_catalog_manager' into develop. Refs #9084.

Conflicts:

- Code/Mantid/Framework/API/inc/MantidAPI/CatalogSession.h
- Code/Mantid/Framework/API/src/CatalogSession.cpp