Added ICat4 gSoap generated files. Refs #7639

 - Increased filesize of gitattribute to allow gSoap generated files to be commited.
Fixed include paths for generated files. Refs #7639
Reorganise ICat3 dependent files. Refs #7639

 - Moved helper files to `ICat3` folder
 - Updated and reorganised `CMakelists.txt`
 - Removed unused `ICatHelper.h` include from `CatalogSearch.h`
Removed `ErrorHandling` dependencies from ICat algorithms. Refs #7639.

- Renamed `ErrorHandling` to `ICat3ErrorHandling` as this class should now only interact with the ICat3 specific algorithm.
- Moved and renamed GSoapGeneration class to ICat3 domain.
- Updated `CMakeLists` to reflect name changes.
Added namespace support for GSoap ICat3 generated code. Refs #7639.

- Updated `ICat3` classes to make use of namespace.
- Renamed `GSoapGenerated` code to reflect associated namespace.
- Added `soapserializersC` to `GSoap.cpp` to prevent warnings.
- Updated `gitattributes` to reflect name changes.
Added namespace support for GSoap ICat4 generated code. Refs #7639.

- Renamed GSoapGenerated classes code to reflect associated namespace used.
- Added `ICat4GsoapGenerated.cpp` to prevent warnings.
- Updated `README.md` to reflect namespace problems and appropriate solutions.
Login and logout functionality implemented. Refs #7639.

- Encapsulated SSL authentication scheme into own function to prevent duplication of code.
- Error message method ensures user friendly and accurate gSoap errors are output.
List instruments functionality implemented. Refs #7639.

- Changed plugin type as `uows` is needed to route query via the ISIS user office systems.
List investigation type functionality implemented. Refs #7639.
Small naming consistency fix. Refs #7639.
My data functionality implemented. Refs #7639.
Minor name changes and error improvements. Refs #7639.
Search query encapsulated and reorganised includes. Refs #7639.
Implemented `getDataFiles` and `saveDataFiles` methods. Refs #7639.

- Created method to convert timestamp to human readable datetime.
- Removed unnecessary `addMyDataColumnHeader` method.
- Added investigation type to query method.
Improved `getSearchQuery`. Refs #7639.

- Added check to run parameters in `saveInvestigations` to prevent null pointer.
- Renamed output workspace parameter in several methods to be consistent.
Checkpointing: Tided up code. Refs #7639.

- Check dynamic casts for null pointers
- Removed unnecessary comments.
- Improved parameter names in `ICat4Catalog` header file.
Added `getDatasets` and `saveDataSets` functionality. Refs #7639.

- Note: currently the `saveDataSets` method saves empty strings to the workspace. This was to prevent Mantid from dying as the GUI expects there to be values. This will be fixed in another ticket.
Added `getFileLocation` functionality. Refs #7639.

- Note: This currently works on windows as file paths are not modified for other operating systems, and the mount point of the archive is not taken into account.
Added logger functionality to `ICat4Catalog`. Refs #7639.
Added main `search` functionality. Refs #7639.

- In order to search for datetimes the format needs to match the server's. This is in the form of: `Y/M/D h/m/s`.