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
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