Use portable format specifiers: Adapt/fix EMSGU/emsgu to use (uint64_t).

Problem

EMSGU macro was defined as the unsigned counterpart of EMSGN. This is,
invoking emsgu instead of emsgn and having a long_u argument instead of
a long.
But, surprisingly, emsgu was not defined anywhere, which didn't result
in an error because in fact EMSGU was not used (the only point in code
printing a %lu erroneously using EMSGN instead).

Solution

- Define emsgu.
- Adapt EMSGU macro to use uint64_t instead of long_u.
Use portable format specifiers: Case %lu - localized - EMSGU.

Problem  EMSGN was being used to print a format string using "%lu",
         which is incorrect because EMSGN casts its argument to int64_t.
Solution Use EMGSU instead.