Rewrite the bootstrap macros in hy

This gets rid of the dichotomy between bootstrap.py and macros.hy

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)