Fix setting of field types from ASDL when grammar productions have cycles.
ASDL-imported fields marked '?' must still be given.

They are "optional" in that they can be None, but they are still non-default positional parameters to the node constructors. Switched pynode.py to use ASDL importer.