Make diffgeom objects work with simplify( )

The only point I'm not so sure is whether scalar fields **always** commute. I suppose they do.

All elements of the arg-trees are now subtypes of Basic (otherwise simplify( ) fails).