Replace long with (u)int32_t for systems with sizeof(long) > 4

This only affects long's which are used on an 64-bit system. The zilmar spec
with its DWORD is not touched because on 32 bit it is always 32 bit for common
systems. On Win64 systems it is also 32 bit because Microsoft adopted LLP64.
All other systems seem to use LP64 (IL32LP64), ILP64 or SILP64.

ILP64 and SILP64 would also need to have shorts and int (when the code expects
32 bit) to be changed to (u)int*_t counterparts. This is not done in here.