hammer2 - Make the CRC check code programmable

* Add infrastructure to allow a CRC check code method request to be stored
  in an inode.  The method will be inherited by anything created under the
  inode.

* Refactor the check_algo and comp_algo encoding to make the distinction
  between the requests in ipdata fields and the actual specification stored
  in bref.methods.

* Make sure that the hidden directory inherits the iroot's algorithm
  specifications for consistency.
hammer2 - Add directives for setting the check mode

* Add setcheck, setcrc32, and a few other directives for setting the
  crc check mode on a directory or file.  The inode and any new chains
  or modifications will inherit the mode.

* Make adjustments to stat and show to display more information.
newfs_hammer2 - Set default compression and check modes

* When creating a new filesystem, make sure the directory inodes contain
  proper defaults for the compression and crc check mode.
Make sure to disable RX MAC in alc_stop_mac(). Previously there was a logic error which it always enabled RX MAC.

Obtained-From: FreeBSD (r211285 d05dbde94114fc2033995347b55de74f9bc8e40e)
status bits should be &'ed against status to be really functional.

Obtained-From: FreeBSD (r212764 d7bdcc10e4df9e7f755be4e1853272956eb39493)
Don't bother to enable ASPM L1 to save more power. Even though I am

not able to trigger the issue with sample boards, some users seems
to suffer from freeze/lockup when system is booted without UTP cable
plugged in. I'm not sure whether this is BIOS issue or controller
bug. This change fixes AR8132 lockup issue seen on EEE PC.

Obtained-From: FreeBSD (r214542 d5b678ca0dc503e5c0ee4dde9d43cb0138def17c)
Correct wrong definition of PM timer mask and adjust L1/PM timer

value. While I'm here enable all clocks before initializing
controller. This change should fix lockup issue seen on AR8152
v1.1 PCIe Fast Ethernet controller.

This fixes: http://bugs.dragonflybsd.org/issues/2625

Obtained-From: FreeBSD (r217649 d7200f3f19ae70c6fc623456c4e7ceda8e6f631d)
Fix typo.

Obtained From: FreeBSD
Fix logic error. Due to the bug, it incorrectly checked TXQ status

which in turn can leave TXQ active.

Obtained From: FreeBSD (r218038 747546166f1055f5d23ef661fbc30e355f1d6fec)
linux/kernel.h: Add WARN_ONCE()
linux/delay.h: Add mdelay()

Obtained-from: OpenBSD
linux/err.h: Add IS_ERR_OR_NULL()

Obtained-from: OpenBSD
rc.subr: Add quietstart and pass through arguments to rc scripts.

None of our scripts handle additional arguments yet but it will be
needed for moused starting/stopping via devd(8) and for bluetooth
too.

Taken-from: FreeBSD