configure.in:  add functions to test all kernels on system

Getting ready for multiple builds per kthread flavor
configure.in:  rework section 2 subsections & documentation
Pull flavor-specific #ifdef out of emc/motion/control.c
super-ub-kernel-scan-wip:  find all kernels on system & detect type

This branch is to work out scanning all kernels on the system.

** Kernel directory selection **

By default, each directory in KSOURCE_LOCATION_HINTS is checked for
kernels.  Additional directories may be added using
--with-extra-kernel-sources="<dir> <dir>..."

Obvious problem entries (dupes, non-existent) are culled.

** Kernel directory testing **

Each directory is tested to contain a configured kernel source.  That
simply means .config and include/linux/version.h exist.

If shmdrv is enabled, add this directory to the shmdrv kernel list.

Next, unless xenomai kernels were specified using
--with-xenomai-kernel-sources, check if this is a xenomai kernel by
grepping for CONFIG_XENOMAI in .config, and add to the xenomai kernel
list if found.

Finally, do the same thing for RTAI, testing by grepping for
rt_daemonize in Module.symvers.

** --with-foo-kernel-sources **

If these flags (foo is one of xenomai, rtai, shmdrv) present on the
configure command line, only consider those directories for that type
of kernel.
add support for AC_CANONICAL_HOST in configure.in

Supporting scripts in src/autoconf, taken from automake v1.11

This introduces the variable $host, which will be set to a value such
as x86_64-unknown-linux-gnu.

When cross-compiling for e.g. i686 in an x86_64 system, this is part
of the infrastructure to do that correctly.
- Remove MODULE_DIR and KERNEL_VERS from Makefile.inc.in
  - Will be computed automatically in Makefile and rtapi.conf.in
- Remove MODULE_DIR checking from configure.in
  - Needs to be moved to Makefile and scripts
    - FIXME rtapi.conf and linuxcnc scripts need work
- Plumb kernel source directory list into Makefile.inc
  - Xenomai, RTAI and shmdrv kernel lists
- Remove old kernel checking code
  - Remove validity checks
    - FIXME this may have to be reverted for RTAI, which only
      supports a single kernel version per host
  - Remove version.h checks
    - This needs to be moved to Makefile and scripts
- Remove workaround code
  - FIXME need to plumb workaround for RTAI?
    - If RTAI is single kernel, just revert
FIXME:  fixes commit 06062ec189e215c3c69676563d69390b87145a34

'Pull flavor-specific #ifdef out of emc/motion/control.c'
Add ../lib/liblinuxcncshm.so to TARGETS so it gets cleaned
configure.in:  replace a few defaults that got lost
Universal build:  build for multiple kernels/flavor in one run

- Makefile reruns itself for every kernel source matching the flavor
- Move kernel version checking to a script called from Makefile
- Put build objects into .../$(threads) for userland,
  .../($threads)/$(KERNEL_VERS) for kthreads
- Fix inconsistent use of $(OBJDIR)
- Fix 'separate kbuild artifacts hack' directory links
- Tweak clean target
Univ build:  realtime.in, rtapi.conf handle multiple kernel versions

This is how it should have been in the first place.

- Function 'find_module_path <module>' looks for a module in
  rtdir/flavor/kver, then rtdir/flavor, then rtdir

  - 'find_module_path <module> <module_dir>' looks in module_dir only
    (useful for finding RTAI modules)

- Other things greatly simplified