Scripting cleanup

This is a big cleanup of nearly all the places we are interacting with python scripts. The main tool for working with python is now the PythonScript class which makes it simple to do one of the two common scenarios:

1) Execute a script and extract results from it
2) Create and extract a python implementation of a C++ interface

For the most part using PythonScript will eliminate the need to worry about GIL locking, this is managed behind the scenes.

In addition some cleanup was done in the services department as was needed for the scripting changes.