Add support for reading floats starting with 0x to strtod, add hdtoa().

This code is taken from the gdtoa/FreeBSD folder from Apple's Libc, with
minimal changes to make it compile standalone.

Change-Id: Ia7989ea275618ce2566b1da77c594d969bffb341
Add support for %a to the printf family.

This is based on FreeBSD's implementation, but slightly different so
that it looks more similar to the other code in vfprintf.c. The
implementation relies on hdtoa(), which was added in a previous commit.

Change-Id: I8847ae9cbe0acbaabf52a4d314d0ba775da3277b
Add support for %a to the scanf() family.

This was written from scratch (based on the existing hex int parsing
code in the same file). The actual string->double conversion work
is done by strtod(), which was taught about 0x floats in a previous
commit.

Change PFXOK, NZDIGITS to not overlap with DPTOK, EXPOK as all four are
used when parsing floats now.

Change-Id: I79fdfe72099ab5130aaaae57b017750fad1d50cb