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.
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
Add another small test on this
Remove useless check

Signed-off-by: Julien Danjou <julien@danjou.info>
Implemented &key and added tests
Removed redundant expression from _parse_lambda_list
docstrings on the mangle
documenting hy.core.mangles
Added global.  Not sure if this is a good idea ...

(global foo) => global foo
Clean up based on review