replace if_get with if_get_smr in the vlan transmit path.
this mitigates against hammering the parent interface refcnt when
transmitting packets.
this means we call if_enqueue against the parent interface from an
smr critical section rather than calling it while holding a "real"
ref, but aggr has been calling if_enqueue from an smr critical
section for years without issue.
add if_get_smr()
if_get_smr() is like if_get() in that you give it an interface index
and it gives you an ifnet pointer (or NULL), except it doesnt bump
the reference count on the interface. to compensate, you can only
use it inside an SMR critical section.
the good news is that the ifidxmap map and ifnet lookups are already
done using SMR, so this is an extremely trivial change.
the benefit of this is that you can avoid the atomic operations on
a shared variable (the ifnet refcnt) when using an interface in an
smr critical section.