Added support for leave_classname methods

These methods will be called (if defined) when the relevant node has been
left (ie, after all child nodes have been processed).

If leave_classname is not defined, generic_leave will be called.
Updated 'automatic' TutorialNodeVisitor functionality

TutorialNodeVisitor now tracks the current function and class.

It also correctly identifies and handles nested functions and classes.
The effect of this is that existing code which refers to nested functions
or classes must be altered.  Note that methods are nested functions.

Previously, a nested function was saved in the arguments dictionary as its
bare method name (eg __init__).  It is now prefixed by its class name (so
__init__ becomes ClassName.__init__).
Renamed .args to .functions

The old .args[name] is now .functions[name].args

Updated tutorials to reflect this and earlier changes
Changed .classes to use ClassDefinition