inet/inet6: Remove the v4-mapped address support

This greatly simplies the code (even the IPv4 code) and avoids all kinds
of possible port theft.

INPCB:
- Nuke IN6P_IPV6_V6ONLY, which is always on after this commit.
- Change inp_vflag into inp_af (AF_INET or AF_INET6), since the socket
  is either IPv6 or IPv4, but never both.  Set inpcb.inp_af in
  in_pcballoc() instead of in every pru_attach methods.  Add INP_ISIPV4()
  and INP_ISIPV6() macros to check inpcb family (socket family and
  inpcb.inp_af are same).
- Nuke the convoluted code in in_pcbbind() and in6_pcbbind() which is used
  to allow wildcard binding to accepting IPv4 connections on IPv6 wildcard
  bound sockets.
- Nuke the code in in_pcblookup_pkthash() to match IPv4 faddr with IPv6
  wildcard bound socket.
- Nuke in6_mapped_{peeraddr,sockaddr,savefaddr}(); use in6_{setpeeraddr,
  setsockaddr,savefaddr}() directly.
- Nuke v4-mapped address convertion functions.
- Don't allow binding to v4-mapped address in in6_pcbind().
- Don't allow connecting to v4-mapped address in in6_pcbconnect().

TCP:
- Nuke the code in tcp_output() which takes care of the IP header TTL
  setting for v4-mapped IPv6 socket.
- Don't allow binding to v4-mapped address (through in6_pcbbind()).
- Don't allow connecting to v4-mapped address and nuke the related code
  (PRUC_NAMALLOC etc.).
- Nuke the code (PRUC_FALLBACK etc.) to fallback to IPv4 connection if
  IPv6 connection fails, which is wrong.
- Nuke the code for v4-mapped IPv6 socket in tcp6_soport().

UDP:
- Nuke the code for v4-mapped IPv6 socket in udp_input() and udp_append().
- Don't allow binding to v4-mapped address (through in6_pcbbind()).
- Don't allow connecting to v4-mapped address.
- Don't allow sending datagrams to v4-mapped address and nuke the related
  code in udp6_output().
- Nuke the code for v4-mapped IPv6 socket in udp6_disconnect()

RIP:
- Don't allow sending packets to v4-mapped address.
- Don't allow binding to v4-mapped address.
- Don't allow connecting to v4-mapped address.

Misc fixup:
- Don't force rip pru_attach method to return 0.  If in_pcballoc() fails,
  just return the error code.
tools/kq_accept_server: Allow binding to a specific IPv4 address
tools/accept_server: Add option to bind processes to CPUs

According to the listen socket's CPU hint.
socket: Add KTR_SOWAKEUP

Define 2 pairs of children nodes for this KTR, which are used to tracking
extra IPIs for accept(2).

Note:
The tracked sorwakeup() and the wakeup(so_timeo) does not generate extra
(wakeup) IPIs.
inet/inet6: Don't allow different users to bind to the same port

It is really wrong to allow different users to bind to the same port,
if the original 'reuseport' binding is using wildcard address and the
new binding is also using wildcard address; this serves no purpose and
imposes security risk (port theft).
tcp: Enable path mtu discovery by default

This also eases the adoption of the RFC6864.
inet: Merge in_control() and in_control_redispatch()

This also brings SIOC[DAG]LIFADDR ioctls back to the userland.