Adopted new casting strategy for 32bit to 64bit.

To reduce compilation warnings, first get the effective address using operator `&`, then cast to the type of the pointer of the target type, because pointers are of the same size.

For example, convert `var` from type `a_t` to `b_t`:

    b_t new_var = *((b_t *) (&var));
More about casting.

Casting reinterpreted is very dangerous, especially when casting from small type to big one. This casting strategy won't zero the higher bit, so we have to do it mannually in the code.
Changed (u)int{32,64}_t type to void* in itoa-s.

With new casting method, every integer is casted into another integer with different size, and then casted into a pointer or other type.

Now the code can compile without ant warnings.