use lookup table, loop unrolle to optimize itoa (integer to ascii) convertion.
original code was taken from http://www.slideshare.net/andreialexandrescu1/three-optimization-tips-for-c-15708507

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

Speedup ratio: compare with the result of
`original' (greater is better)
built : 2.09
rename api from ilog10ull(uint64_t) to _qrintf_ilog10ull(unsigned long long)
 _qrintf_int_core now accepts a pointer next to the last char
fix truncation bug at _qrintf_chk_int_core()
fix perfomance degradation on 32-bit architecture

Implement _qrintf_(chk|nck)_long_core, _qrintf_long_core, _qrintf_ilog10u32, _qrintf_ilog10ul.
Rename _qrintf_(chk|nck)_int_core to _qrintf_(chk|nck)_long_long_core.
Merge pull request #9 from imasahiro/optimize_itoa

Use lookup table and loop unrolling to optimize integer to ascii convertion