remove memory copy ops from _QP_HEX_F

benchmark code:
  unsigned addr=123456790;
  for (i = 0; i != 100000000; ++i) {
    sprintf(buf, "%x.%x.%x.%x",
      (addr >> 24) & 0xff, (addr >> 16) & 0xff,
      (addr >> 8) & 0xff, addr & 0xff);
  }
benchmark result:
Execution time (sec)
    original : 1.09s
    built : 0.95s

    Speedup ratio: compare with the result of `original' (greater is
            better)
    built : 1.147
Merge branch 'master' into kazuho/pull/3
use appropriate clz function depending on the type, and check zero before calling it (since the result of the function is undefined in such case)
Merge branch 'kazuho/pull/3' (close #3)