defmain macro; handles the whole if __name__ == __main__ / main function dance

Example:

  (defmain [&rest args]
    (print "now we're having a fun time!")
    (print args))

Which outputs:

  $ hy test.hy
  now we're having a fun time!
  (['test.hy'],)

Includes documentation and tests.
Merge branch 'master' into pr/526