refs #10187. Start refactoring processing logic

Make the same methods available for group processing as well as individual workspace processing.
refs #10187. Start modifying for processgroup overload.
refs #10187. Not fixed yet.

Looks like there's an issue with the m_filehandler not being initialized properly for some reason!
Merge branch 'master' into feature/10187_process_groups
refs #10187. Need to open the group first.
refs #10187. Fix SaveNexus.
refs #10187. Bug in test code.
refs #10187. History tracking fix.

The history tracking object must be initialized whether we are processing
groups or not.
refs #10187. Old gcc compiler complains about init order.
Revert "refs #10187. Old gcc compiler complains about init order."

This reverts commit b00c39a33ab01967149b3ba73f9c286544378e73.
refs #10187. Compiler complains about init order.
refs #10187. More init order warning fixes.
refs #10187. Sort out all ordering.
refs #10187. Always close group.

A few issues fixed here. Firstly. I found that the algorithm was failing
when thrown a very large group workspace. This turned out to be because we
needed to close the group within the doExec call. A group i always opened,
so it is necessary to close it.

The second thing done is to fix SaveNexus so that it will pass through
group workspaces intact to SaveNexusProcessed. Under the previous
mechanism, this would not have happened, because the generic Algorithm
group processing code would have exploded out the individual workspaces.
Merge branch 'feature/10187_process_groups' of github.com:mantidproject/mantid into feature/10187_process_groups
refs #10187. Delete existing file if no append.
refs #10187. File var not initialized fix.
refs #10187. stop calling searching for groups following POGO.

Use an optional entry number parameter instead of counting workspace group entries in the file. This was the main bottleneck acording to the previous
POGO report. Seems to have generated a massive speedup. Can save as WG of size 512 in < 8 seconds rather than 138 seconds as previously.
refs #10187. Report of group processing success.

Group workspaces don't indicate via the logs that they have finished
processing. Normal execution does. I've fixed that here. I've also added a
message about the fact that group processing completion has been done so
that timings can be seen to relate to the overall processing. This will
help where the native processGroups is used, and algorithm execution logs
are reported in addition.
Revert "refs #10187. Report of group processing success."

This reverts commit 0a8b9e304f332dc907a2aeb9781ebfb69f6dee2f.