drm: Replace drm_atomic.h by linux/atomic.h from FreeBSD's OFED stack
drm: Improve linux/atomic.h

* Add an atomic64_t definition

* Add back atomic_xchg()

* Add atomic64_read() atomic64_xchg() and atomic64_set()
drm: Import linux/bitops.h from the FreeBSD OFED stack
drm: fix test_and_set_bit() prototype
drm: Import linux/kernel.h from FreeBSD's OFED stack
kref.h: Adapt to Linux 3.8's drm

* Implement kref_sub()

* The internal counter is used by the drm code, rename it to refcount

* The internal counter must be of type atomic_t
drm: Use Linux atomic types and functions

Opportunistically sync to Linux 3.8 when possible
kernel/i386: Implement atomic_swap_long()
kernel/x86_64: Do not print a message upon every segmentation fault.

It was printed even when the SIGSEGV was caught, such as by configure
tests, causing a rather noisy console when packages were built. After
this commit we're back to the traditional behavior (no message if the
signal is caught, and the usual message if not):

pid <pid> (<user>), uid <uid>: exited on signal 11 (core dumped)

While here, adjust some comments.