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.
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
Implemented &key and added tests
Removed redundant expression from _parse_lambda_list
Clean up based on review
Removed .format from lex/states.py
Mangler cosmetic cleanup

Signed-off-by: Julien Danjou <julien@danjou.info>
Merge branch 'master' into pr/144
Introduce a context manager for compiler.returnable

Signed-off-by: Julien Danjou <julien@danjou.info>
misc. style fixes
Merge branch 'master' into pr/140

Conflicts:
	hy/compiler.py
	tests/native_tests/language.hy