Quote strings containing hex numbers when generating ZAML
When generating ZAML, we prefer to write bare strings when possible. To
that end, we have rules about which sorts of strings are not safe to
write bare. One of those rules is strings containing numbers (for if we
wrote those bare, they would be revived as numbers). However, ZAML
wasn't properly considering hex digits when identifying a string
containing a number, resulting in those strings being written unquoted,
and revived incorrectly as numbers.
That is, YAML.load(ZAML.dump("0xffff")) would return 65535, when it ought
to be "0xffff".