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
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
Added meth tests by mocking a Flask app
Merge branch 'better-macroexpand' of https://github.com/sbp/hy into sbp-better-macroexpand

Conflicts:
	hy/core/language.hy
	tests/native_tests/language.hy
Whitespace fix
Merge branch 'meth-fix' of https://github.com/Willyfrog/hy into Willyfrog-meth-fix

Conflicts:
	tests/__init__.py