Re #7950. Switch to PyQt v2 API for QString & QVariant.

This is necessary for the IPython script interpreter plan because they
use that API there.
Re #7950. Minimal changes for a interface to start & stop.

These changes allow the Powder Diffraction Interface to be
started and closed without complaint. Hope I mapped all the types
correctly.
Re #7950. Remove last explicit mention of QVariant.

And changed method calls on _recent_files from QStringList ones to
python list ones (as that's its type now - QStringLists have gone on
the python side).
Re #7950. DGS Reduction GUI now starts up successfully.

Note on the changes in util.py: the old QString.toDouble/Int methods
returned a tuple with the 2nd value being a boolean indicating success.
The python conversion operators throw a ValueError for invalid input.
The QString method behaviour was to set the returned value to zero on
failure - I've retained that behaviour.
Re #7950. Changes so that EQSANS interface will start.
Re #7950. Changes to allow HFIR interfaces to start up.
Re #7950. Fix other uses of QString in SANS gui code.

These are the ones that aren't hit by default on start-up of the GUI.
Re #7950. Last remaining explicit creations of QStrings.

In the scripts/Interface tree at least.
Re #7950. Fix uses of QString.isEmpty().

…on objects that are no longer QStrings, but python strings.
Re #7950. Fix usage of QString method.
Re #7950. Make sure variable is converted to the right type.

It seems that the settings are stored differently on different
platforms and on linux this was reading in as a string instead of a
boolean.
Re #7950. Make sure empty list is loaded back correctly.

An empty list of recent files is saved to the QSettings as "@Invalid".
Reading this back in sets the variable to 'None', which causes problems.
Change it back to an empty list.
Re #7950. Remove barrier to starting reduction gui outside MantidPlot.

There are other places with an unguarded import of MantidPlot, but this
one is trivial to fix.
Re #7950. Set PyQt API version for stand-alone running.

If running in Mantid, this setting is done within the C++ code. I'm adding
it here to make sure things work if running outside of MantidPlot (which
doesn't work at the moment, but could cause confusion later if that's fixed).
Note that this has to be done before the first import of PyQt.
Re #7950. More changes for PyQt API change.

This is exactly the same change in several places. Previously the
toPyObject() turned the returned QVariant into the desired type.
Now the actual type is returned in the first place.
Re #7950. Remove debug print statement left in by mistake.
Merge remote branch 'origin/feature/7950_pyqt_v2_api_for_qstring_qvariant'