Initial import of the Microsoft HyperV 'enlightened' drivers.

From https://github.com/FreeBSDonHyper-V/VendorBranchForFreeBSDonHyper-V
rev:   99eaa0ddb0485c9d76046664100f6beb1a0a0c58
Import driver source from hyperv-20130502 vendor branch.
make glue to hook up the hyperv kmods to the build.

Modified from the original Microsoft versions to pull
code/headers in from the sys/contrib/dev directory.
IFC @ r252047
IFC @ r252288
Import Microsoft HyperV driver update
From https://github.com/FreeBSDonHyper-V/VendorBranchForFreeBSDonHyper-V
rev: 3c707c73520adbd6d1f4ff009826dbbfb0c2dc4d
Import driver source from hyperv-20130627 vendor branch.
Connect the stordisengage driver to the build.
IFC @ r252763
Microsoft have changed their policy on how the hyper-v code will
be pulled into FreeBSD. From now, FreeBSD will be considered the
upstream repo.

First step: move the drivers away from the contrib area and into
the base system.

A follow-on commit will include the drivers in the amd64 GENERIC kernel.
IFC @ r253461
First cut at adding the hyperv drivers to GENERIC.
The files inventory should probably have the modules split
out into net/storage/common etc as the modules build is,
but this will do for now.
IFC @ r253862

- change the SI_SUB_RUN_SCHEDULER sysinits in hv_utilc and
hv_netvsc_drv_freebsd.c to SI_SUB_KTHREAD_IDLE, since the
former is no longer in FreeBSD.
  The use of these SYSINITs can probably be removed.
IFC @ r255209
Latest update from Microsoft.

Obtained from:	Microsoft Hyper-v dev team
Revert the kvp code - there's still some work that
needs to be done for that.

Discussed with:	Microsoft hyper-v devs
MFV r247844 (illumos-gate 13975:ef6409bc370f)

Illumos ZFS issues:
  3582 zfs_delay() should support a variable resolution
  3584 DTrace sdt probes for ZFS txg states

Provide a compatibility shim for Solaris's cv_timedwait_hires
to help aid future porting.

Approved by:	re (ZFS blanket)
Go way past 11 and bump bhyve's max vCPUs to 16.

This should be sufficient for 10.0 and will do
until forthcoming work to avoid limitations
in this area is complete.

Thanks to Bela Lubkin at tidalscale for the
headsup on the apic/cpu id/io apic ASL parameters
that are actually hex values and broke when
written as decimal when 11 vCPUs were configured.

Approved by:	re@
Call free() on the pointer returned from malloc().

Reported and tested by:	Oliver Pinter <oliver.pntr@gmail.com>
Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
Approved by:	re (delphij)
Only use a clang'ism if ${CC} is clang.

Reviewed by:	sjg
Approved by:	re (kib)