Static analysis

Significant refactor to static analysis framework.

The base class (`TutorialNodeVisitor`) now does a lot more than before, including:

* keep track of all defined functions and arguments
* keep track of all defined classes
* store information on all functions (including methods) which are called

Also added a fair number of .tuts as part of testing the new methodology.