Add header for CompositeCatalog. Refs #9026.
Added initial empty compositeCatalog implementation. Refs #9026.
Added files to makelist. Refs #9026.

- Updated include to use ICatalog instead of algorithm.
Added implementation for each method. Refs #9026.
Updated documentation. Refs #9026.
Initial compositeCatalog test. Refs #9026.
Added unit tests for compositeCatalog. Refs #9026.

- Still need to write a test for search and getNumResults, but having issues with CatalogSearchParam.
Remove invalid test method. Refs #9026.
Pass parameters by reference. Refs #9026.
Added additional tests. Refs #9026.

- Removed forward declaration from catalog interface to allow creation and assignment of `CatalogSearchParam`.
- Had to add `DLLExport` to `CatalogSearchParam` to prevent linker issues.
- Removed `CatalogSearchParam` include from catalogs as it is now in the inherited interface.
Fix unix issues. Refs #9026.

- Added missing DLL include.
- Revert to forward declaration of `CatalogSearchParam`.
Refactor compositeCatalogTest. Refs #9026.
Increase the number of search results. Refs #9026.
Remove implementation from methods. Refs #9026.

- Update add to be const correct.
Disable related tests. Refs #9026.
Fix compiler warnings. Refs #9026.
Merge remote-tracking branch 'origin/master' into feature/9026_composite_catalog. Refs #9026.

Conflicts:

- Code/Mantid/Framework/API/inc/MantidAPI/ICatalog.h
- Code/Mantid/Framework/ICat/inc/MantidICat/ICat3/ICat3Catalog.h
Remove unused IDS methods. Refs #9026.
Accidently removed wrong method. Refs #9026.
Remove keepAliveInMinutes from ICatalog. Refs #9026.

- This method is invalid in the compositeCatalog. An alternative keepAlive method exists, which should be used instead.