MFC r240829: remove cache entries associated with the source and the target of rename()

MFC slacker:	pjd
MFC r250149: In case ZFS doesn't use UMA for buffers there's no need to waste memory
MFC r253819: MFV r253781 + r253871: 3894 zfs should not allow snapshot of inconsistent dataset

MFC slacker:	delphij
MFC r253820: MFV r253782: 3888 zfs recv -F should destroy any snapshots
created since the incremental source

MFC slacker:	delphij
MFC r253992:
Disable r252840 when ZFS TRIM is enabled (vfs.zfs.trim.enabled=1) and really
disable TRIM otherwise.

r252840 (illumos bug 3836) is based on assumption that zio_free_sync() has
no lock dependencies and should complete immediately. Unfortunately, with our
TRIM implementation that is not true due to ZIO_STAGE_VDEV_IO_START added
to the ZIO_FREE_PIPELINE, which, while not really accessing devices, still
acquires SCL_ZIO lock for read to be sure devices won't disappear.

When TRIM is disabled, this patch enables direct free execution from r252840
and removes ZIO_STAGE_VDEV_IO_START and ZIO_STAGE_VDEV_IO_ASSESS stages from
the pipeline to avoid lock acquisition.  Otherwise it queues free request as
it was before r252840.
MFC: r258137
Introduce allocation cache to store LZ4 compression contexts without kicking
VM subsystem twice for every written record.

Tests on 24-core system show double reduction of CPU time spent on copying
single large well-compressed file.

This patch is not really needed on illumos (while not harm either) since
their memory allocator by default uses caching for all requests up to 128K.
MFC r259168:
Don't even try to read vdev labels from devices smaller then SPA_MINDEVSIZE
(64MB).  Even if we would find one somehow, ZFS kernel code rejects such
devices.  It is funny to look on attempts to read 4 256K vdev labels from
1.44MB floppy, though it is not very practical and quite slow.
MFC r260236:
In dmu_zfetch_stream_reclaim() replace division with multiplication and
move it out of the loop and lock.
MFC r254608: Add kstat entries for ZFS compression statistics

MFC slacker:	gibbs
MFC r254757: MFV r254749: 4046 dsl_dataset_t ds_dir->dd_lock is highly contended

MFC slacker:	delphij
MFC r256889: Use the vdev's ashift to calculate the supported min block
size passed to zio_compress_data
MFC r258294: Fix ZFS deadlock when sending a snapshot which is mounted

MFC slacker:	smh
MFC r259052: Expose spa_asize_inflation
MFC r259576: MFV r258923: 4188 assertion failed in dmu_tx_hold_free():
dn_datablkshift != 0
MFC 261518:
- Update a few places to account for va_copy().
- Create a separate 'return values' section and move some statements about
  return values to that section.
- Note that each invocation of va_start() and va_copy() must be paired with
  va_end() in the same function.
MFC 261517,261520:
Convert the license on files where I am the sole copyright holder to
2 clause BSD licenses.
[automated] Merge in upstream-github/stable/9