Revert Davide's commit, introducing hard limit on UMA zone buckets sizes.

I am going to merge more flexible alternative from FreeBSD head.
MFC r258336
Implement soft pressure on UMA cache bucket sizes.

Every time system detects low memory condition decrease bucket sizes for
each zone by one item.  As result, higher memory pressure will push to
smaller bucket sizes and so smaller per-CPU caches and so more efficient
memory use.

Before this change there was no force to oppose buckets growth as result
of practically inevitable zone lock conflicts, and after some run time
per-CPU caches could consume enough RAM to kill the system.
Add more and reorganize existing UMA zone buckets.

 - Adding more buckets makes auto-tuning more soft and precise.
 - Subtracting bucket header out of bucket size allows better fit
buckets into slab size (1 memory page).
Grow UMA zone bucket size only in case of zone lock congestion.

If zone lock is not congested (i.e. allocations are rare) there is
no need to have large per-CPU caches, significantly complicating memory
freeing process.  Memory will still be cached, but in zone itself,
where it can easily be freed on demand.
Implement mechanism to safely but slowly purge UMA per-CPU caches.

This is a last resort for very low memory condition in case other measures
to free memory were ineffective.  Sequentially cycle through all CPUs and
extract per-CPU cache buckets into zone cache from where they can be freed.
Reenable vfs.zfs.zio.use_uma for amd64, disabled at r209261.

On machines with seveal CPUs and enough RAM this can easily twice improve
ZFS performance or twice reduce CPU usage.  It was disabled three years
ago due to memory and KVA exhaustion reports, but our VM subsystem got
improved a lot since that time, hopefully enough to make another try.