logging and debugging

  • make use of the logging module
  • add a debug switch to the commandline interface, to enable verbose logging (log-level DEBUG)
  • use astor and log the output of astor.to_source(tree)
  • provide a function decorator, which print the debug context (name, args, ...) of any function/method

i suggest to make astor a needed package, but if we really want to stick only to the absolutely necessary packages, we could make import astor a conditional import..

i guess this makes finding/solving errors very much easier in many cases. especially if someone else use our package, because we can ask them to provide us the debug output :D