Provide software context store in struct ifnet for any facility. To add
a new facility, one needs to grab a value in the ift_feature enum, and
not need to modify struct ifnet.
The store also has a cache to return frequently requested values,
which resembles kobj(9) method cache.
The plan is to move into the softc store almost all possible software
contexts that hang off the struct ifnet, leaving static only the driver
softc, AF_INET, AF_INET6 pointers, and other frequently used pointer.
Sponsored by: Nginx, Inc.
Sponsored by: Netflix