This fixes an LOR in the synfilter implementation.  When a synfilter
is run from _syncache_add(), an INP_RLOCK is obtained while SCH_LOCK
is held from a preceeding syncache lookup.  If another thread calls
syncache_expand() from tcp_input(), syncache_expand() will attempt to
acquire SCH_LOCK while an INP_WLOCK is already held.

To avoid the LOR, when a synfilter is installed, _syncache_add() now
downgrades the INP_WLOCK it acquires on entry to an INP_RLOCK and
holds it until SCH_LOCK is released, which includes across a synfilter
invocation, if any is made.  This also resolves another issue related
to dropping the INP lock, then later reacquiring it and passing the
inp to the synfilter.
Fix munged #ifdef
The libuinet pcpu subsystem can usefully be initialized with any
number of cpus less than or equal to the number of host cpus, and when
initialized with less than the number of host cpus, it is possible for
threads to be pinned to cpus beyond the set that the libuinet pcpu
subsystem is aware of.  This patch ensures that threads pinned to host
cpus beyond the set of cpus the libuinet pcpu susbsystem is aware of
are mapped into the available pcpu state set.
Merge remote-tracking branch 'upstream/master' into passive_receive_adrian