Tidy up Instrument.h

Some users of Instrument now require a couple of extra headers.
Refs #8784
Remove cow_ptr from VectorHelper header.

Refs #8784
Tidy up the ReadLock/WriteLock header includes

Uses forward declarations where possible.
Refs #8784
Prune headers in the Kernel Property tree.

Many things here could be forward declared so that the headers don't
propagate through the code.
The MaskedProperty implementations have been moved to the cpp file to
help with this.
Refs #8784
Fix cpp files requiring the Detector.h header

Refs #8784
Tidyup the Logger headers.

Refs #8784
Tidyup Algorithm.h header

Mainly removed Poco includes and used forward declarations instead.
Unsuprisingly this has affected some algorithms.
Refs #8784
Thin out the Progress & ProgressBase headers.

Implement ProgressBase copy constructor & assignment operator
now required as the constructor allocates memory.
Refs #8784
Further header removals from PropertyManager

Refs #8784
Add required headers to StepScan

Refs #8784
Add required includes to tests.

Refs #8784
Add required Kernel headers for other platforms.

Refs #8784
Fixes for includes required in a release build.

Refs #8784
Include cmath for RHEL6 build.

Refs #8784
Export declarations for Windows.

Refs #8784
Poco header for windows.

Refs #8784
Delay instantiation of algorithm notification objects

If an algorithm is never run it is a bit of a waste to have things created
and destroyed when registering them.
Refs #8784
Merge branch 'bugfix/8784_unneeded_headers' into develop