socket: Change sysctl names sosnd -> sosend, no functional changes
tcp: Correct sending idle detection and implement part of RFC2861

This commit mainly changes how cwnd is shinked after idle period on
the send side.

- Properly detect sending idle period according to RFC5681.  The problem
  of using reception time to detect sending idle period is described in
  RFC5681 as:

  "...
   Using the last time a segment was received to determine whether or
   not to decrease cwnd can fail to deflate cwnd in the common case of
   persistent HTTP connections [HTH98].  In this case, a Web server
   receives a request before transmitting data to the Web client.  The
   reception of the request makes the test for an idle connection fail,
   and allows the TCP to begin transmission with a possibly
   inappropriately large cwnd.
   ..."

  This mainly affects HTTP/1.1 persistent connection performance after
  the connection is idled for a long time.  The impact probably should not
  be drastic, since 80% HTTP/1.1 persistent connection delay between two
  requests are less then minimum RTO (1 second) as discovered by:
  "Overclocking the Yahoo! CDN for Faster Web Page Loads"
    http://conferences.sigcomm.org/imc/2011/docs/p569.pdf

  Sysctl node net.inet.tcp.idle_restart is added to disable the cwnd
  shinking after idle period.  It is on by default.  And you can set it
  to 0 to restore old behaviour against HTTP/1.1 persistent connection.

- Implement part of RFC2861, which decays cwnd after idle period according
  to the length of sending idle period.  The main difference between our
  implementation and the RFC2861 is that we don't let cwnd go below the
  value allowed by RFC5861.

  Sysctl node net.inet.tcp.idle_cwv is added to disable CWV after sending
  idle period.  It is on by default.  Disable net.inet.tcp.idle_restart
  will also indirectly disable CWV after sending idle period.

  The CWV during the application-limited period is not implemented by this
  commit.  It is just too conservative, as discovered by:
  "Analysing TCP for Bursty Traffic, Int'l J. of Communications,
   Network and System Sciences, 7(3), July 2010."

- Add statistics about how much sending idle happened
jme: MSI-X interrupt handler bug fixes

- Always write INTR_STATUS in RX interrupt handler
- Always enable/disable related interrupts in cooresponding interrupt handler
jme: Don't enable RSS by default

It does not seem to be stable enough to be used.
Remove a deleted mpt(4) related header file with 'make upgrade'.
ef(4): Bring in some small fixes from FreeBSD.

Gets rid of a superfluous extra opt_ef.h file in /usr/obj hierarchy.
Rename vfs_accounting_enabled to vfs_quota_enabled
jme: Pass rxdata to RX functions
jme: Use RX data's interrupt mask to test interrupt status

Functionally same, semantically better
jme: Move RX ring count and RX descriptor count into rxdata

Improve CPU cache utilization
jme: Option file adjustment

- RSS is now globally enabled; opt_rss.h is no longer needed here
- Always enable JME_RSS_DEBUG if module is not built w/ buildkernel
jme: Move TX descriptor count into chain_data

Improve CPU cache utilization
jme: Unbreak buildkernel w/ KASSERT
tcp: Reset keepalive timer, if TCP_KEEPIDLE is changed

This would cause side effect, if the keepalive probing was underway.
Correcting this side effect could become overkill, so it is suggested
that TCP_KEEPIDLE is set before connect(2) or listen(2).
tcp: Reimplement TCP_FASTKEEP socket option using per-pcb keepidle

Retired now used TF_FASTKEEP
Merge branch 'master' into gsocdrm_merger
bsd-family-tree: Sync with FreeBSD.
digi.4: Remove some wrong documentation.
dsched_bfq.4: Fix capitalization.
kernel: Remove some leftover references to struct cfdriver.