If an object does not have .to_json, we no longer try to call it

@lamont-granquist This should be a fix for what we talked about at the conference.  Let me know what you think!
heh this works, and i know why it works, because 'yajl_gen_number' just outputs a string without quoting it, but it'll make other people's brain hurt who read this.   i had to fight for hours with yajl before i realized that calling yajl_gen_number was useful for things other than numbers.

for everyone else you should probably not quote the string yourself and then call yajl_gen_string (which adds the quotes around it and then behaves like yajl_gen_number).   that'll create more code inside the if blocks, but it'll be much less mind-bendy on first glance than what you have.