MFC a bundle of commits that bring autotuning to mbufs, maxfiles/sockets
and maxusers to the 9-stable branch.  It is committed as bundle because
these patches build on each other and only provide the functionality in
their entirety.  Some are bug fixes to aspects of earlier commits.

MFC r242029 (alfred):

 Allow autotune maxusers > 384 on 64 bit machines.

MFC r242847 (alfred):

 Allow maxusers to scale on machines with large address space.

MFC r243631 (andre):

 Base the mbuf related limits on the available physical memory or
 kernel memory, whichever is lower.  The overall mbuf related memory
 limit must be set so that mbufs (and clusters of various sizes)
 can't exhaust physical RAM or KVM.

 At the same time divorce maxfiles from maxusers and set maxfiles to
 physpages / 8 with a floor based on maxusers.  This way busy servers
 can make use of the significantly increased mbuf limits with a much
 larger number of open sockets.

MFC r243639 (andre):

 Complete r243631 by applying the remainder of kern_mbuf.c that got
 lost while merging into the commit tree.

MFC r243668 (andre):

 Using a long is the wrong type to represent the realmem and maxmbufmem
 variable as they may overflow on i386/PAE and i386 with > 2GB RAM.

MFC r243995, r243996, r243997 (pjd):

 Style cleanups, Make use of the fact that uma_zone_set_max(9) already
 returns actual limit set.

MFC r244080 (andre):

 Prevent long type overflow of realmem calculation on ILP32 by forcing
 calculation to be in quad_t space.  Fix style issue with second parameter
 to qmin().

MFC r245469 (alfred):

 Do not autotune ncallout to be greater than 18508.

MFC r245575 (andre):

 Move the mbuf memory limit calculations from init_param2() to
 tunable_mbinit() where it is next to where it is used later.

MFC r246207 (andre):

 Remove unused VM_MAX_AUTOTUNE_NMBCLUSTERS define.

MFC r249843 (andre):

 Base the calculation of maxmbufmem in part on kmem_map size
 instead of kernel_map size to prevent kernel memory exhaustion
 by mbufs and a subsequent panic on physical page allocation
 failure.

MFC r253204 (andre):

 Fix style issues, a typo in "kern.ipc.nmbufs" and correctly plave and
 expose the value of the tunable maxmbufmem as "kern.ipc.maxmbufmem"
 through sysctl.

MFC r253207 (andre):

 Make use of the fact that uma_zone_set_max(9) already returns the
 rounded limit making a call to uma_zone_get_max(9) unnecessary.

Tested by:	alfred (iXsystems)