use built-in (u)int64_t types instead of doing tricks with preprocessor macros
remove unneeded constants
remove last remaining blips of hand-rolled type_traits