rtapi/exception: define exception causes, handler, setting method

the cause list in rtapi_exception_t is supposed to cover all noteworthy
events from the RT layer, of all flavors

the cause code is passed as  first parameter to the exception handler
the second param is a cause-specific value
the third is an error message

rtapi_set_exception(rtapi_exception_handler_t h) enables redefining the
(default) exception handler; the value of the old handler is returned.
rtapi_main: add optional module init hook

primary purpose: arm the SIGXCPU handler within rtapi.so
xenomai: adapt reporting to new exception handler scheme

the 'error_printed' stuff is policy and has no place in a mechanism layer.

if anywhere, do this in the (default or user-specific) handler.
xenomai-kernel: adapt reporting to new exception handler scheme
rtai-kernel: adapt reporting to new exception handler scheme
rtpreempt: adapt reporting to new exception handler scheme
rtapi_app: check xenomai group id via sysfs
rtmon.comp: start on HAL estop support through RT exceptions
classicladder/vars_access.c:  remove RTAI- and Xenomai-specific macros
rtapi/exceptions: apply output policy once and for all
Makefile:  add rtapi/rtapi_exception.h to HEADERS
universal build:  driver build

- Group --enable-drivers, --enable-usermode-pci and libudev detection
  in configure.in for clarity
  - move after thread flavor detection since drivers are dependent on flavors
- Disable USERMODE_PCI in kbuild flavor builds
scripts/realtime.in:  hack:  skip kernel detection for userland threads

FIXME  This script needs attention.
rt-preempt.h:  remove non-existent hook that crept in
Remove flavor-specific code from universal binaries

Replaced with new rtapi_compat.c functions.

For module_helper, remove extra checks; these can be reimplemented if
needed later.
.gitignore docs/man/man9/rtmon.9
rtapi/shmdrv/Submakefile:  fix EXTRAFLAGS for mutexwatch example
scripts/rip-environment:  Output error messages to stderr
mammoth patch:  update build system, scripts and code for universal build

Ouch, another biggie.  Most of this is easy to debug when it breaks,
luckily.

- update build system for universal build
  - '--with-threads=<foo>' removed; now use 'make threads=<foo>'
  - configure.in/Makefile.inc breaks out all(?) flavor-specific variables

- update scripts for universal build
  - scripts/rtapi.conf
    - per-flavor variables broken out, e.g. MODULE_DIR, KERNEL_VERS
    - settings removed from scripts/realtime to rtapi.conf
    - outdated MODPATH_foo stuff removed
  - scripts/realtime
    - most settings come from rtapi.conf
    - kernel checking updated
  - FIXME when RTAPI modules live in separate MODULE_DIRs, tweaks needed
  - FIXME half-assed job updating linuxcncconfig.py

- update code for universal build
  - MODULE_EXT is flavor dependent
    - replaced with rtapi_compat functions in most cases

- remove outdated cruft
  - math detection: assuming that this is no longer an issue
    - loads of code in configure.in; mathstubs.c
  - module path detection:  long obsolete, and changing again
  - variable proliferation:  xeno_config
  - RTDIR variable/macro almost gone
    - now used only by latencyplot (which only works with RTAI) FIXME
  - MODEXT/MODULE_EXT now comes from rtapi_compat code
  - RTPREFIX, RTNAME, RTAI variables
  - old thread detection code in configure.in; no more AC_SUBST(THREADS)
  - --run-in-place and other warnings