reactor: oneshot timer should remove self from reactor

Fixes #84
Merge pull request #86 from garlick/oneshot-timer-unreg

reactor: oneshot timer should remove self from reactor.
Fixes #84
Merge pull request #85 from garlick/api-handle-dq

handle deferrred messages with an inproc socket.
Fixes #81.
api: re-initialize reactor_start function

The reactor should support re-entry per issue #88.
This covers the reactor in the API handle implementation.
modules: re-initialize reactor start function

Reactor should support re-entry per issue #88.
This covers the reactor in comms module handle implementation.
build: use flux-keygen --force to generate keys

Automake occasionally decides that keys need to be re-generated
after some series of changes that I don't quite understand.
No harm in adding --force so this is not a hard error.
Merge pull request #90 from garlick/reactor-restart

allow reactor restart + generate in-tree keys with --force
Fixes #88
testsuite: check for expected exit codes from flux-start

Especially for testing purposes, flux-start exit code should
communicate failures from underlying commands or other session
errors.

Add a couple checks to the basic tests to ensure that flux-start
reports exit code from underlying command and additionally detects
children killed by signals.
flux-start: exit with maximum exit code of children

flux-start currently always exits with 0 status which makes it
impossible to tell if a test run under flux-start actually passed
or failed.

This patch saves the largest return code from all children and
uses that as the exit status for flux-start. (signals are indicated
by the standard 128 + signum). This only applies to "start_direct",
since otherwise flux-start directly execs the launcher (i.e. srun).
Merge pull request #91 from grondo/flux-start-error-handling

flux-start: handle non-zero exit code of children
libutil: move xstrsub to libutil/xzmalloc.c
submodule: flux_modfind() search subdirs

Seach each component of the search path recursively.
submodule: send submodule mgmt requests to modules

flux_insmod ("kvs") request is cmb.insmod.
flux_insmod ("sched.backfill") request is sched.insmod,
flux_insmod ("sched.backfill.priority") request is sched.backfill.insmod.

Similar for flux_rmmod.

flux_lsmod now takes a target argument.
If NULL, request is cmb.lsmod.
If "sched", request is sched.lsmod.
submodule: update flux_lsmod usage in modctl

Set target to NULL pending rework of this module.
submodule: install modules to cmb subdir
submodule: unit tests for flux_modfind()

Also remove a stray debugging fprintf
submodule: add some inline docs to module.h
submodule: shorten flux.conf.in module_path

We no longer need to list every module directory, or hardwire
the .libs libtoolism since we search for modules recursively now.
submodule: drop unnecessary include in module.c
build: wreck should use project install defs

We predefine the flux-core install directories in configure.ac so these
definitions needed not be repeated throughout the project.  Somehow we
missed converting wreck to use these and so wreck did not pick up
the redefinition of fluxmoddir in the 'submodule' patch series.