Put Workspace2D spectra delete in OpenMP loop.

On MSVC this improves the time taken to delete large workspaces that have
had their memory allocated on multiple threads, i.e. running ConvertUnits
and breaking the X-data sharing. For example, a workspace
with ~70000 spectra & ~2600 bins (~4.3Gb) takes ~45 seconds to delete
after a ConvertUnits call. This drops to 1-2s if the deallocation of the
memory also happens within a multi-threaded loop.
Refs #8216
Use DeleteWorkspace algorithm behind GUI delete button.

This then won't block on the main thread if the deletion takes a bit of
time.
Refs #8216
Define a set of GlobalFixtures for the unittests.

Currently these clear the AnalysisDataService & AlgorithmManager when
their tearDownWorld() methods are called, which ensures that all
workspaces placed in these singletons are cleared up before the end of
main.

If this it not done then the process hangs on MSVC while trying to
delete a Workspace2D, which contains an OpenMP loop in its destructor and
omp is not allowed to be called on Windows outside of main.

Refs #8216
Add comments for Workspace2D destructor & test tearDowns

Refs #8216
Add the PropertyManagerDataService to the TearDownWorld test helper.

Refs #8216
Formatting only changes to remove tabs.

Refs #8216
Empty out the DataService objects before python exits.

The instance methods are tracked using a reference count. When the
count reaches zero then it is assumed that the final object is being
deleted and the service is cleared.
Refs #8216
Add required includes for non-precompiled header platforms.

Refs #8216
Add required namespace using statement.

Refs #8216
Remove unecessary typename statement from non-template scope.

Refs #8216
Only run the Workspace2D delete in parallel on MSVC.

It looks as if some performance tests on Linux have suffered slightly
from the running the delete in parallel there too.
Refs #8216
Merge remote-tracking branch 'origin/feature/8216_slow_ws_del_win'