kernel - network protocol thread routing
* ip_input() now calls ip_mport() unconditionally and physically compares
the port to &curthread->td_msgport. If they do not match the packet
will be forwarded to the correct protocol thread.
* ip6_input() now unconditionally calls sw6->pr_soport() on the last
received header and forwards the packet to the correct protocol thread.
udp6, tcp6, and rip6 are now marked as terminal protocol (PR_LASTHDR).
Though I'm not sure this is correct they must be marked this way for
the packet to be forwarded to the correct protocol thread.
This fixes an assertion panic when tcp6_input() calls tcp_input().
tcp_input() is expecting to be run on the same protocol thread assigned
to its socket, otherwise callout timers and other entities will get
confused.