libnvdimm for 4.8

1/ Replace pcommit with ADR / directed-flushing:
   The pcommit instruction, which has not shipped on any product, is
   deprecated. Instead, the requirement is that platforms implement either
   ADR, or provide one or more flush addresses per nvdimm. ADR
   (Asynchronous DRAM Refresh) flushes data in posted write buffers to the
   memory controller on a power-fail event. Flush addresses are defined in
   ACPI 6.x as an NVDIMM Firmware Interface Table (NFIT) sub-structure:
   "Flush Hint Address Structure". A flush hint is an mmio address that
   when written and fenced assures that all previous posted writes
   targeting a given dimm have been flushed to media.

2/ On-demand ARS (address range scrub):
   Linux uses the results of the ACPI ARS commands to track bad blocks
   in pmem devices.  When latent errors are detected we re-scrub the media
   to refresh the bad block list, userspace can also request a re-scrub at
   any time.

3/ Support for the Microsoft DSM (device specific method) command format.

4/ Support for EDK2/OVMF virtual disk device memory ranges.

5/ Various fixes and cleanups across the subsystem.