Slicing a HyList makes the same kind of object again
Make empty macroexpansions do the right thing
Add a cons object and related mechanisms

Closes: #183
Update tutorial.

- Fix a couple of typos
- Use open() built-in instead of file()
- Update (for) and (with) examples
Merge master onto pr/486
Merge master onto pr/471

Conflicts:
	hy/core/language.hy