Refs #8550. Changes table structure.

We don't actually need to store pairs/names/etc. This is all for GUI
so that it's easier for user to select what they want to plot. When
grouping we only care about which spectra goes to which group.
Refs #8550. Handle zero groups better.
Refs #8550. Use detector IDs for grouping instead of spectra indices.

This is consistent to how GroupDetectors works and how information
is stored in the files.
Refs #8550. MuonAnalysis: some new functions for grouping.

Plus updating the old ones a bit.
Refs #8550. Minor code clean-up.
Refs #8550. Loading grouping using LoadMuonNexus.
Refs #8550. Changed grouping logic.
Refs #8550. Removed unused functions.
Refs #8550. spectrumIDs duplicates String::parseRange - replaced.
Refs #8550. Merge remote-tracking branch 'origin/master' into 8550

Conflicts:
	Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MuonAnalysis.h
Refs #8550. ScopedWorkspace: explicit remove method.

Plus fixed setting logic and test for it.
Refs #8550. Minor refactoring.
Refs #8550. Grouping loading improvement.

Plus removal of duplicated code.
Refs #8550. Human-readable ranges when loading from nexus.
Refs #8550. Improved error handling a bit.

Still a lot of work in that regard though. Worth a separate ticket
to make sure all the possible causes of errors are handled.
Merge branch 'feature/8550_muon_tidy_up_grouping' into develop