Start of marshalling centralization. Please check this over for sanity. I think the perl script and Makefile might need fixing up to allow builddir != srcdir I will start converting all the widgets to use this scheme if no problems arise.