add hexfloat (%a) support for printf

This should match the behaviour of [c99 standard](http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf) (page 291).