defmacro/g! and HyObject#startswith

Currently, defmacro/g! doesn't respond well when it comes across a
HyObject that doesn't respond to the instance method startswith (e.g.
HyInteger, HyFloat, etc.). This updates defmacro/g! to be a little
safer when searching for the gensyms it needs to create.

Let me know if there's any stylistic changes you guys want or if my commit message even explains things correctly. Also, let me know where I can throw a test or 2 at this.