Check that compiler error are user always user friendly

Signed-off-by: Julien Danjou <julien@danjou.info>
Write a test for builds() check

Signed-off-by: Julien Danjou <julien@danjou.info>
Modify HyDict semantics to allow nesting expressions

HyDicts are now HyLists, that get compiled down to dicts
only by the compiler.
Add tests for expr-in-dict
Test quoting dicts
Refactor test_ast.py to eliminate the lots of hy_compile(tokenize(...)) calls
Make macros module-specific.
A macro is available in the module where it was defined and
in any module that does a require of the defining module.
Only macros defined in hy.core are globally available.
Fixes #181
Merge branch 'master' into pr/177
style fix - long line
Merge branch 'master' into pr/179
Merge branch 'master' into pr/182
Merge branch 'master' into pr/185

Conflicts:
	hy/macros.py
	tests/compilers/test_compiler.py

Hoodoggy!