refs #8381. Start reverse control flow work.

I have also exposed peaks presenters via python. Seems to work ok thus far.
refs #8381. Updating working both ways.

Selected aspects can be controlled both from the GUI and via python. Tests will need reworking.
refs #8381. Zoom to peak via python.

Zoom to a peak of a specific peaks presenter and select the corresponding row in the mini peaks workspace.

This is associated with a fix in what thread the code is executed upon. There is a Hack (marked HACK) in one of the presenters that will need fixing yet.
refs #8381. Refactoring and fixes.
refs #8381. Fix tests.

Some of the CompositePeaksPresenter tests were broken by the previous changes.
refs #8381. Extend python tests and fix bug.

Bug was causing the 'Hide' button to get activated for no reason.
refs #8381. Change to American English.

Color is more consistent in the python API. Since this interface is being exposed via SIP. It makes sense to rename the colour functions.
refs #8381. Update sip documentation.
refs #8381. Missing header file.
refs #8381. Nested class causes problems on rhel6.
refs #8381. Fix GCC warning.
refs #8381. Fix windows error.

QObject defines no signals or slots, so its wrong to moc it.
refs #8381. Fix rhel6 warning.
refs #8381. More robust and flexible input checks

More robust and flexible input checks. Perform any conversion if possible. Give errors on python side if bad inputs provided. Refactor code to use getWorkspaceNames from both modules.
Merge remote-tracking branch 'origin/feature/8381_python_peaks_presenter'