Reverted extra check for plugin filenames that was avoiding a plugin from being loaded twice.  The fix was really to add the CppTPGPlugin::grap() and release() calls to the CppTPGDescriptorWrapper class.  The problem was that the CppTPGDescriptorWrapper object was ending up with an invalid pointer because the release() call in the scanPlugins() method was causing the CppTPGPlugin object to be deleted.
Forgot to add the grab() and release() calls for the TPGDescriptor object as well in the CppTPGDescriptorWrapper class constructor/destructor.
Merge pull request #5 from DavidNicholls/cam-py

Merged Andrew's cam-py branch with my latest changes.
Merge branch 'cam-py' of https://github.com/andrewjrobinson/FreeCAD_sf_master into cam-py
Reversed the logic on the 'if' statement so that it matched the one above in an attempt to avoid confusion (and to force a change to work through GIT)
Merge branch 'nightly' into cam-py