refs #8609 modified Mari to avoid diagnostics completely.
Merge remote branch 'origin/feature/8410_task_mutex_shared_ptr'
Refs #6473. Merge remote-tracking branch 'origin/master' into 6473

Conflicts:
	Code/Mantid/MantidQt/MantidWidgets/CMakeLists.txt
Merge remote-tracking branch 'origin/feature/8607_icat_stests_windows'
refs #8609 Allow to drop diagnostics for all ISIS inelastic instrum.
Refs #8600 two new input parameters for SaveHKL
Refs #8502 first four refactor tasks
Re #8613. Add a test that exposes the bug.
Added splitByPulseTime(). Refs #8427.
Implemented option filter by pulse time. Refs #8427.
Re #8613. Remove code that bails out early if no events in a bank.

We need the bank name to be added to the list even if it's empty as it's
checked for if the BankNames property has been set. There's already a check
that means that no LoadBankFromDiskTask is created for the bank if it's
empty (the original justification for adding this code in commit [36540217]).

I don't think this change has much other effect, but I'll be relying
heavily on the tests to confirm that given the horrific complexity of
the file.
Let `saveNexus` take care of workspace groups. Refs #7636.
Merge remote-tracking branch 'origin/master' into feature/7636_icat_publish. Refs #7636.

Conflicts:
	Code/Mantid/Framework/ICat/inc/MantidICat/ICat4/ICat4Catalog.h
Added `setICATProxySettings` to publish method. Refs #7636.
Merge remote-tracking branch 'origin/feature/8588_algorithm_decorator'
refs #8589. Template for new algorithm and tests.
refs #8589. Create a base algorithm class.
refs #8589. Move common toLam to base class.

Move and make adjustments to ensure that everything is still working and that tests still pass.
refs #8589. Move existing functions into base class.

Will still need to do some work around these yet.
refs #8489. Common parameter init to base class.

This has involved making some names common.