Create an 'overlay' property

Add a new 'overlay' property (default 'off') that controls whether the
filesystem should be mounted even if the mountpoint is busy or if it
should fail with a 'mountpoint not empty'.

Doing overlay mounts is the default mount behavior on Linux, but not
in ZFS. It have been decided that following the ZFS behavior should
be the default, but this overlay allows for site administrator to
override this decision on a per-dataset basis.

Signed-off-by: Turbo Fredriksson <turbo@bayour.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes: #2503
cast ptr to ulong in cpu_seqid

This patch adds a cast of pthread_self in CPU_SEQID definition.
This fixes a build time error, resulting from comparing types
pthread_t and int, on alternate platforms.
ensure arc.c finds HZ

Current glibc includes linux/param.h from sys/param.h. When
building with alternate libc, build error results from lack
of HZ definition. This patch adds a direct include for
linux/param.h, to ensure that HZ gets defined.
ensure dev_t defined

Current glibc includes sys/types.h from stdlib.h. When
building with alternate libc, a build error results from
undefined type. This patch adds an include for sys/types.h,
to ensure that dev_t gets defined.
ensure rlim64_infinity defined

Several files make use of the RLIM64_INFINITY macro available
from current glibc's sys/resource.h. This patch adds a local
sys/resource.h, to offer a fallback for alternate libc's
that do not provide this macro, and updates the relevant
files to include the new header.