Refs #10354 Fix bug in ProgressBase

ProgressBase would fail to report progress after a call to
resetNumSteps. This was due to m_last_reported being left at a high
value, filtering any new progress reports.

We now properly reset the state during resetNumSteps.
Refs #10354 Optimise SaveParameterFile

Poco was hopeless. The only way to get around the O(n) bottleneck
required accessing private members of Poco::XML::Node.

As the XML output was relatively simple, we can instead just write the
same thing ourselves, manually.

On my machine this brings SaveParameterFile's performance to be the
same as LoadParameterFile's performance, rather than 5-10x slower.
Refs #10354 Improve SaveParameterFile accuracy

* Output detector id when possible
* Do not output insignificant position differences
* Do not try to be too clever with relative parent positions
Merge branch 'master' into feature/10354_optimise_saveparameterfile

Refs #10354

Conflicts:
	Code/Mantid/Framework/DataHandling/src/SaveParameterFile.cpp
Merge remote-tracking branch 'origin/feature/10354_optimise_saveparameterfile'