kernel - Fix ifnet scan race in ipv6

* Fix situations where an ifnet scan can catch an interface as it is still
  being initialized, before ifp->if_afdata[AF_INET6] is assigned.

* Add a global ifnet_token to protect if_index and the ifnet list.

  WARNING, there are still SMP races in the ifnet scans, they have
  not yet been instrumented with the new token.

* Also reorder the TAILQ_INSERT of a new if into the ifnet list to occur
  after all the domain initialization has been done rather than before.