Coerce the contents of unquote-splice'd things to a list

This fixes the conversion issue in the following macro:

(defmacro doodle [&rest body]
  `(do ~@body))
Add test for unquote-splice behavior
Always import __future__.print_statement in hy code

This allows us to drop the print special-casing in the
compiler, and makes behavior consistent in Python2/3.
Merge pull request #297 from olasd/print-function

Always import __future__.print_statement in hy code
Merge pullrequest #296
Add hy._compat module.

There was a couple of duplicate imports and type checkings in the
codebase. So I added a new module to unify all Python 2 and 3
compatibility codes.

Also, this is a somewhat common pattern in Python. See Jinja2 for
example:

https://github.com/mitsuhiko/jinja2/blob/master/jinja2/_compat.py