Make HyObject.replace more resilient

This makes it work on quoted objects
Add macroexpand to core/language.hy
Added a simple test for macroexpand
Added documentation for macroexpand
Added macroexpand-1
Fixed --name-- scope problem using ugly inspect code
Define kwapply as a macro
Define apply if python3
Added apply tests
Make apply api-compatible with python (args is not mandatory)
Allow calling kwapply with mixed names and dicts
Bootstrap a macro error-reporting test file
language.hy whitespace fix
removed unnecessary import
Adding olasd's improvements
meth wasn't accepting correctly its parameters
Now also accepts more than 1 statement in the code part of the macro
refactored to use only 1 codebase (no more route != route-with-macros)
Fixed docstring
Add astor to install_requires.

`hy --spy` fails on hy 0.9.11.

    $ hy --spy
    hy 0.9.11
    => (type "hy")
    Traceback (most recent call last):
      File "/usr/local/lib/python2.7/dist-packages/hy/cmdline.py", line 68, in print_python_code
        import astor.codegen
    ImportError: No module named astor.codegen
Convert stdout and stderr to UTF-8 properly in the run_cmd helper.
Explicitly skip the skipped test in test_bin.
Merge pull request #369 from berkerpeksag/skip-test

Explicitly skip the skipped test in test_bin.
Merge pull request #328 from berkerpeksag/add-astor

Add astor to install_requires.