Track the comments preceeding each token without an intervening blank line.

These will be stored along with declaration and statement nodes in the
AST.
Add type declaration parsing.
Add the nilOr helper method for test matchers.
Add constant declaration parsing.
Add variable declaration parsing.
Add decl_test.go
Fix constant and variable declaration printing.
Use github.com/eaburns/pp for AST printing.

This drastically reduces the amount of boilerplate.
Use github.com/eaburns/pp for dot output.