Add (recur) for functions and stuff.
hy/cmdline.py: Add support for running with --spy -i

There's no reason why one would need to choose between --spy and -i, so
pass down options.spy to run_icommand, and then to HyREPL, so we can
have both.

Signed-off-by: Gergely Nagy <algernon@balabit.hu>
Refactor (loop) in terms of fnr; change to use decorator.
Move "hy on meth" example to eg/.
bin/hy2py: Add a bunch of command-line options

The hy2py tool has been very useful for me, but most of the time, it's
only a part of its output that one is interested in. The whole output,
with source code, AST and python code together is one big monstrosity.
So instead of printing all that, lets have a few handy command-line
options to control which part gets printed.

By default, only the generated python source is, as that's what the name
of the tool implies.

Also, don't run it. That's what hy is for.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
Rewording

Not sure if the rewording is much better.
hy/lex/parser.py: Move most of the identifier mangling into a def

As a refactoring step, move the identifier mangling done in t_identifier
into a separate def.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
tests/lex/test_lex.py: Add a few tests to cover identifier mangling

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
hy/lex/parser.py: Add support for sub-object mangling

With this patch, every identifier is split up along dots, each part gets
separately mangled, and then it is all joined back together. This allows
for fun stuff like (.foo? (Foo)), and even more contrived examples.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
Fix reader macros to actually be macros
Move all contrib.meth tests to tests/native_tests/contrib/.
docs: Correct the defmacro syntax in the API docs

Signed-off-by: Gergely Nagy <algernon@balabit.hu>
docs: Document (defmacro-alias)

Signed-off-by: Gergely Nagy <algernon@balabit.hu>
Rewording and reformatting plaintext

Is this rewording unwieldy?
Merge branch 'master' into pr/437
Merge branch 'master' into pr/438
Merge branch 'master' into pr/439
Merge branch 'master' into pr/440
Merge branch 'master' into pr/441
Merge branch 'master' into pr/443