igb.4: This driver is not much related to em/emx
drm: Implement dmi_check_system()

* The original function imported from FreeBSD was just a stub

* Replace it by a working implementation from OpenBSD

* And modify it slightly to use SMBIOS information from the loader

* This makes it possible to avoid display detection issues on some
  slightly broken hardware reporting phantom outputs or other weird
  invalid data.
drm: Use NELEM() in dmi_check_system()

Spotted-by: swildner
kernel: Add VM_MAX_ADDRESS and VM_MIN_ADDRESS constants
drm: Improve dmi_found()

* The OpenBSD code didn't distinguish between board and system names as
  well as board and system vendors

* Properly release memory allocated by kgetenv() while I'm at it
kernel: Add pmap_page_set_memattr()

Obtained-from: FreeBSD
Avoid potentially freeing NULL pointers in dmi_found()
libc/db: Add missing MLINK for mpool_delete().
pmap/i386: Unbreak buildkernel

- Comment out pmap_change_attr function call.  Add notes about what
  needs fix.
- Minor style change.
route/inet: Dispatch PRCLONed route expiration to netisr
route/inet: Add comment about read/write shared global variables
kernel: Add a memattr argument to vm_page_alloc_contig()
drm: Move PROC_LOCK define to common file
drm: Locally implement VM_OBJECT_LOCK variants
drm: Import the ttm memory manager from FreeBSD

It is needed by some recent GPU drivers such as nouveau and radeon
for nvidia and AMD hardware
ttm porting: Fix include files
ttm porting: MPASS -> KKASSERT
ttm porting: malloc / free / printf

* printf() => kprintf()

* malloc() => kmalloc()

* free() => drm_free()
ttm porting: Translate locking primitives

* rw locks to lockmgr locks

* sx locks to lockmgr locks

* Some mtx locks to lockmgr locks

* Some mtx_locks to spinlocks

Some more locks could probably be converted to spinlocks but this
can be dangerous.
Better use lockmgr locks first and be sure the code runs without any
issue before trying to optimize it.
ttm porting: msleep => lksleep