fix the INT64_C and INTMAX_C family macro for x86_64.

  This patch fix the expanding type of both the INT64_C and the INTMAX_C
  family macros to match their corresponding type:
  - INT64_C(value) to `int_least64_t`
  - UINT64_C(value) to `uint_least64_t`
  - INTMAX_C(value) to `intmax_t`
  - UINTMAX_C(value) to `uintmax_t`
cmp(1): fix some build nits (to build on FreeBSD)

Add standard headers where appropriate.

Convert variable to static where appropriate.
Add support for an -h flag which causes cmp(1) to not follow symlinks.
Remove advertising clause from extern.h header.

Taken From:	FreeBSD
cmp(1): Take latest changes from FreeBSD's implementation.

In particular handle symbolic links more correctly, add a
signal handler, and other misc changes.