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
PY3 should really check for Python >= 3
Add @berkerpeksag to AUTHORS
Cleanup the hy.macros module

Add comments to the functions, reorder, make the file clearer
Rewrite the bootstrap macros in hy

This gets rid of the dichotomy between bootstrap.py and macros.hy,
by making both files hy modules.

I added some error checking to make the macros more resilient. The
biggest (user-visible) change is the change in cond, which now only
accepts lists as arguments. Tests updated accordingly.

Closes: #176 (whoops, no more bootstrap)
Rewrite language.hy not to require hy.core.macros

As was intended when the bootstrap and core macros were separated.