make the interpreter a separate function (c4 -> c5)
support hexadecimal and octal numbers

cherry-picked-by: Duy Nguyen <pclouds@gmail.com>
support void as return type
add x86 jit (c5 -> c6)

This is code rip from https://github.com/EarlGray/c4.git, commit
947b27678fd34c295745fb6771c44770dbce0946 with some debugging code
removed.
avoid += operator, not supported
add mmap, avoid using PROT_* and MAP_* macros
avoid using unsigned type

cherry-picked-by: Duy Nguyen <pclouds@gmail.com>
avoid calling (unsupported) function pointer

cherry-picked-by: Duy Nguyen <pclouds@gmail.com>
use dlsym to get function address for now

cherry-picked-by: Duy Nguyen <pclouds@gmail.com>
abort if -j (jit mode) is used on 64-bit