Added HyLambdaListKeyword tokens to the lexer

The name "lambda list keyword" is a historical artifact from the CLHS
and not optimal (http://clhs.lisp.se/Body/26_glo_l.htm).

The name may change at some point.
[WIP] Added lambda list keyword parsing step

This allows us to translate lisp argument lists to Python ones.

(defun foo (x y &rest z &optional {foo 3} &aux kwargs))

translates roughly to:

def foo(x, y, *z, foo=3, **kwargs):
  pass
Merge branch 'develop' into feature/lambda-list-keyword
WIP - Adding Call support and FuncionDef

The test is still broken, there are print statements... this is an
ongoing WIP and will get squashed before submitted the PR.
Added ast pretty printer
Merge branch 'develop' into feature/lambda-list-keyword
WIP - Move _parse_lamba_list to the functiondef
Got &rest working, tests pass

Did a little house cleaning in lex states.py too and started removing
stupid print() statements.
Adding in some new items
fixing the bits
Use HyTypeError to raise `else' errors in `foreach'

Signed-off-by: Julien Danjou <julien@danjou.info>
Callin' this 0.9.6
Merge branch 'master' of github.com:paultag/hy
Implement unary minus
Simplify the decorator hy.compiler.builds
Not so much for the efficiency gain, but to save keystrokes in the
debugger when looking at methods with lots of builds decorators.
Merge branch 'unary_minus' of github.com:khinsen/hy
Don't quote things in (quote) - Closes #129
Merge branch 'master' into feature/lambda-list-keyword

Conflicts:
	hy/compiler.py
	hy/lex/states.py
	hy/util.py
	tests/compilers/test_ast.py
	tests/lex/test_lex.py
WIP - Added &key support
Added line and column offsets