kernel: Add a method to get the bus's bus_dma_tag_t

This is required by some machine architectures where there are separate
IOMMU's for each PCI bus.

Obtained-from: FreeBSD
vga_pci.c: Sync with FreeBSD

Most important change:

* Use vga_pci_alloc_resource() to map PCI Expansion ROMs

* This is cleaner and fixes Video BIOS mapping when the given device isn't
the boot display.

* Original author: dumbbell@
drm: Rename members of struct drm_agp_head to match Linux

This reduces the diff between FreeBSD and Linux 3.8.
drm: Rename struct drm_driver_info to struct drm_driver

This reduces the diff between FreeBSD and Linux 3.8.
drm/radeon: Add missing "return false" after unmapping invalid BIOS

Without that, we would try to copy the unmapped BIOS.

Submitted by:	Christoph Mallon <christoph.mallon@gmx.de>
Approved by:	re (blanket)
kernel - Performance optimization pass

* Numerous pid and priority related syscalls, such as getpid(), were
  improperly acquiring proc_token to protect fields that are now protected
  with per-process or per-pgrp tokens.

  Do a pass on kern_prot.c and kern_resource.c fixing these issues.  This
  removes the use of proc_token from several common system call paths but
  it should be noted that none of these system calls are in critical paths.
  The benefit is probably minor but will improve performance in the face
  of allproc-scanning operations (such as when you do a 'ps' or 'top').

* vmntvnodescan() is not in the critical path except for vflush()'s which
  occur on umount.  vflush()'s pass a NULL fast function.  The
  vmntvnodescan() only needs to hold the vmobj_token when the fastfunc is
  non-NULL.  Do not hold the vmobj_token when fastfunc is NULL.

  This primarily improves performance when tmpfs's are being mounted and
  unmounted at a high rate (poudriere bulk builds).