MFV r268452:

Explicitly mark file removal transactions as "presumed to result
in a net free of space" so they will not fail with ENOSPC.

Illumos issue:	4950 files sometimes can't be removed from a full
		filesystem
MFC after:	2 weeks

(cherry picked from commit 77d1e23fe3f3a42e7bcc713ee389790041958d34)
MFV r268453:

Diff reduction against Illumos.

MFC after:	 2 weeks

(cherry picked from commit cb7e625917dd35e628dc02b563096d239afaba52)
MFV r268454:

Refresh zpool list for each interval in order to produce fresh
output.

Illumos issue: 4966 zpool list iterator does not update output

MFC after:	 2 weeks

(cherry picked from commit 9b45140041c09da644d27b76a72bd4d08340b70c)
MFV r268455:

Use reserved space for ZFS administrative commands.

We reserve 1/2^spa_slop_shift = 1/32 or 3.125% of pool space (or 32MB at
least) for system use.  Most ZPL operations, e.g. write(2), creat(2), will
fail with ENOSPC if we fall below this.

Certain operations, e.g. file removal and most administrative actions,
still permitted until half of the slop space is used.  This would allow
users to use these operations to free up space in the pool when pool is
close to full but half of slop space is still free.

A very restricted set of operations that frees up space or change quota
are always permitted, regardless of the amount of free space.

MFC after:	 2 weeks

(cherry picked from commit 7c6811e6756423b54c7c0411ede07f860bfebce2)