Added GraphComponentClass and GadgetClass to improve bindings.

Now it is not necessary to remember to use the annoying DEFWRAPPERFNS macros that used to be necessary when binding GraphComponents and Gadgets to Python - the new classes take care of all that. This is part of a general movement away from macros and towards more *Class helpers in the bindings - other macros will be replaced in a similar fashion as we visit those parts of the code.
Added NodeGadgetClass to improve bindings of NodeGadgets.

No more nasty macros - moving things into line with the rest of the improved bindings. Still a few more to go...
Bindings for RootNodeGadget - needs squashed.