pprust: Add `token`, `keyword`, `binop` methods
pprust: `.head()`
pprust: Move State-dependent routines into one place

This is temporary commit towards Stateless token printer
Add AstPrinter and PrettyPrinter

and everything started to break