Reset the child's sigmask before exec

Othewise the child inherits the signal mask of the calling thread,
which is usually not what is desired, and is additionally inconsistent
depending on which thread spawns the new process.

Change-Id: I41c3e1a9f0cce4bdf9ba24fff02b63aa00af8d06
Remove dead code

This stuff has been #if 0'd for ages; put it out of its misery.

While here, remove the global bnode_waiting which is not used for anything.

Change-Id: Ib70b639db4273604318e224ccc86f2f6352990a2
bozo: Use libtool

Convert bos into a libtool library.

It doesn't have any dependencies or in-tree users outside of bozo,
but prepare for a pthreaded verison.

Change-Id: If6d88e8593335f4300d905f1f46399664809ffcd
We can build pthreaded shared lib for free

Change-Id: I62ba66ec085f4cb9fd14e863781037afbe08a479
Compile bos as pthreaded

Change-Id: Ia1aca88616bb252891bd1ec1bdf39e6352885027
Build bos_util and smail-notifier as pthreaded

Change-Id: Ide8e9239f00ec3ad18489176f857cc4061bd988a
Reorder bosserver startup prior to pthreads

The rx calls will take locks when built in pthreaded mode, and must go
after rx_Init().  Some other setup would benefit from using time-domain
locking and should run before we go multithreaded.

In particular, initialize bozo_confdir while single-threaded, as it is
otherwise protected by the afsconf internal locking.  While here, pass
NULL to afsconf_SetCellInfo -- bozo_confdir would always be NULL there,
anyway.

Also move up ReadBozoFile so that it can benefit from time-domain
locking as well.  All that it needs is the bnode types to have been
registered and the bnode lock to have been initialized.

Change-Id: Ib0cae83f3a4423330ae6f23d3a4112499d695618
Convert bosserver to pthreads

Well, mostly.  We're cheating because there isn't a libtoolized
procmgmt library yet, but it should be safe for now.

Don't bother retaining a LWP version; this stuff is not super
complicated and is subject to only light concurrency.

Add a global bnode mutex to protect the global state -- the various
bnode queues (though not the bnodes themselves), some compound time
structures that should get a consistent snapshot, and global flags.
Add a condition variable to each bnode for signalling.

The bnode reference counting scheme is not touched; it's current
state is fairly bogus and probably broken even with LWP semantics.

No locking is done on the contents of an individual bnode; simultaneous
callers could introduce inconsistent state (but this was already the
case).

Do not use the softsig implementation, which is known to be buggy
with pthreads.  Instead, use a self-pipe to the bproc thread, whose
sole purpose is to wait for signals and timeouts.

Move creation of the bproc thread to nearly as late as possible
(with the creation of the BozoDaemon thread), to take advantage
of time-domain locking for initialization which is done while
single-threaded.  This allows several globals to be unlocked,
as they are read-only while threaded.

Change-Id: I2865e1fb011d611dd664261ae7a8f21f7ce8d7b0