Catch up with r190457 by checking inp_flags instead of inp_vflag for
pcbs in TIMEWAIT.
Merge r190951:194769 from head.
Merge r194769:194850 from head.
Major rototill in preparation for merging to 8. This is a checkpoint commit that
has only been compile tested on AMD64 so far. Summary of changes as follows:

- Split cc.h into cc.h and cc_module.h, to separate out KPI module plumbing
  (cc_module.h) from generic CC related code (cc.h). Only CC modules
  should include cc_module.h.

- Implement new DECLARE_CC_MODULE() macro, modelled on similar MAC/VFS code,
  to hide most of the machinery of creating a CC kernel module. A CC module
  author can now simply put "DECLARE_CC_MODULE(<name>, &<name>_cc_algo);"
  (replacing <name> as appropriate) at the bottom of their algo's .c file and
  have the framework handle most of the heavy lifting.

- Add new mod_init/mod_destroy function ptrs to struct cc_algo. This provides
  standardised hook functions for the framework to init/cleanup global CC module
  state on kldload/kldunload.

- Rename init/deinit function ptrs to conn_init/conn_destroy for consistency
  with the above change and to distinguish per connection init/cleanup from
  global module init/cleanup.

- Remove the global "cc_algorithm" string which was used to hold the name of the
  systemm default CC algorithm. Since switching to having the default algorithm
  always be at the head of the cc_list TAILQ, use of this string is redundant.

- Catch up with vimage changes that require inclusion of <sys/vimage.h> in
  addition to <netinet/vinet.h>.

- Simplify logic in the sysctl handlers.

- Lots of minor cleanup work.

- Update existing CC modules as required to work with new world order.
Massage the ECN implementation's congestion control related bits to fit in with
the framework. ssthresh adjustment is handled in the pre_fr hook and the minor
code duplication created by this change is hopefully harmless.
Style tweaks for comments.
Move logic to calc bytes ACKed by an incoming regular data ACK into a handy
macro which will be useful in the near future.
- conn_init/conn_destroy are misleadingly named in terms of where they are
actually called from. Rename to cb_init/cb_destroy.

- Don't require a module to implement cb_init as was the case previously.
Create a set of CC related hook function wrappers around the algorithm specific
hook function calls. These wrappers provide a place to do various asserts and
place code that is algorithm agnostic. There is scope to move more code into
some of these wrappers than has been done so far. It may also be beneficial to
optimise for the case where the system default algorithm is in use for the
connection and there are no other algorithms available e.g. don't indirect
through the tcpcb and call the default algorithm's function directly. Not sure
what savings could be made if any, but probably worth exploring.
Checkpoint commit part way through rename of cwnd_init hook to conn_init, which
will now cover cwnd initialisation along with other bits and pieces. I think the
newly named newreno_conn_init function can now be removed and all the code that's in
it placed in the cc_conn_init() wrapper function.
- Complete the cwnd_init -> conn_init hook function transition.

- Hide newreno hook functions from global namespace and access functions through
  the newreno_cc_algo struct. Unfortunately, we can no longer use C99
  initializers to do all the hook function assignments as a result of this
  change, so do the remainder in the mod_init hook.

- Remove the no longer required htcp_after_idle, newreno_cb_init and
  newreno_conn_init functions.
WIP for man pages.
Merge r194850:195305 from head.
- Don't manually add newreno to the cc_list in tcp_init, as the
  DECLARE_CC_MODULE macro in the new world order takes care of registering the
  module for us. Add a KASSERT when initing a tcpcb to check that the list is
  not empty.

- sysctl_handle_string is not required in the case where we are setting a new
  default algorithm. This change fixes a panic that would occur when trying to
  set the default algorithm.
Cleanup CUBIC code to prepare for a standalone initial public release.
Merge r195305:196045 from head.
Merge r196045:197918 from stable/8.
Merge r198022 from projects/tcp_cc_head:

Catch up with vimage changes.
Remove all mergeinfo except on top level directory. It's not needed for my
project branch.