Refactored tutorlib/analysis.py

Broke up the huge analysis module into several submodules.

Importantly, TutorialNodeVisitor no longer defines utility method as
@staticmethods.  Instead, they are defined in ast_tools.py, and then
included in the TutorialNodeVisitor namespace.