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.

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
Merge branch 'bugfix/8784_unneeded_headers' into develop