Ensure the GIL is held while all python is executed.

This is required for Python on Ubuntu 13.10 where the dict
destruction requires an valid threadstate pointer.
Refs #8304
Extract the "real" shared_ptr instance from Python objects

The standard boost::python::extract<shared_ptr> actually
creates a new shared_ptr from the original and embeds
a custom deleter to decref the Python object it was
embedded into. As the C++ side is the one that created
the shared_ptr originally we just want the same one back.
Refs #8304
Introduce DataServiceExporter to reduce copy-and-paste code.

It is now used by the AnalysisDataService & PropertyManagerDataService
exports.
The new class ensures that the embedded shared_ptr is extracted
during the add* operations rather than boost.python creating a new
one with a custom deleter.
Refs #8304
Merge branch 'bugfix/8304_python_unittests_ubuntu' into develop