pipes: use full memory barriers

This matches the barriers actually used in
linux/Documentation/circular-buffers.txt.
pipes: consistently use the size of the rx ring
monitor: use full memory barriers
linux: provide default values on config errors
nm_open: prefer errno as returned by kernel
linux: use mutex instead of semaphore

This should make lockdep much more useful.
macros for mutex management
use safer barriers for priv->np_nifp
break mmap() on non-registered fds

This was kept for compatibility with the original (pre VALE) API,
but it had circular lock dependencies that have actually
caused deadlocks.
merge netmap_if_new() with netmap_do_regif()

netmap_if_new() was only called from netmap_do_regif().
By merging the two, the steps required for registration are more easy
to follow, and the error paths are more clear.
update comment
make do_unregif() actually undo all of do_regif()

In particular, set priv->np_nifp to NULL.
Now it should be more clear when do_unregif() should be called, e.g.,
in the cleanup path of failure that follows a completed do_regif().
doc: datapath of generic adapters
vale ports datapath
fix typos
brapw: reduce locking on tx path

We no longer hold the bwrap rx kring lock around the call
to the wrapped adapter's txsync. This makes lockdep happier.
removed NAF_NOTIFY flag

This flag was used by bwrap to propagate the stopped
state of the hw rings to the krings actually seen by
VALE. Now bwrap does its own checking, so there is no
need for this functionality.
update comments to new bwrap locking behaviour
linux: first stub for a configure script
linux/configure: sanity checks