Merge remote-tracking branch 'origin/feature/8385_compiler_warnings'
Merge remote-tracking branch 'origin/feature/8321_icat_asynchronous_algorithms'

Conflicts:
	Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/ICatSearch2.h
Refs #8321
Merge remote-tracking branch 'origin/feature/8199_icat_filter_label'
Merge remote-tracking branch 'origin/feature/8204_icat_default_user_instrument'
Merge remote-tracking branch 'origin/bugfix/8363_python_docs_config'
Merge remote-tracking branch 'origin/feature/8152_icat_datetime_improvement'
Merge remote-tracking branch 'origin/feature/8163_muon_runnumber_as_log'
Merge remote-tracking branch 'origin/bugfix/8364_rm_sinq_curvefit_depends'
Merge remote-tracking branch 'origin/feature/8348_muon_move_settings_tab'
Merge remote-tracking branch 'origin/feature/7714_bspline_unit_test'
Merge remote-tracking branch 'origin/feature/7864_XIntegrationRange'
Merge remote-tracking branch 'origin/feature/6526_numbering_eventfilter'
Merge remote-tracking branch 'origin/feature/8334_icp_event_log_changes'
Drop workspace refs in AlgorithmProxy when algorithm finishes

The shared_ptrs held in WorkspaceProperty were set and still held by the
AlgorithmProxy object until it got knocked off the AlgorithmManager stack.
This gave the impression of a memory leak if an algorithm failed when
in fact the references were just being held too long.
Refs #8412
Remove an algorithm from the AlgorithmManager if cancel is clicked.

This drops the workspaces references that the proxy would have acquired.
Refs #8412
Only drop workspace references for child algorithms.

If dropped from child algorithms they will be removed completely as
nothing else has a reference to them.
Refs #8412
Merge branch 'bugfix/8412_wksp_refs_alg_failure' into develop