if: Multiple TX queue support step 2 of many

ifnet_{serialize,deserialize,tryserialize}_tx and hardware TX serializer
asserion macros now require subqueue, so the proper hardware TX queue's
serializer could be held, released and asserted.
if: Remove unused if_start_nmsg from ifnet

While im here, adjust comment in ifnet a little bit
if: Multiple TX queue support step 3 of 3; map CPUID to subqueue

Add CPUID to subqueue mapping method to ifaltq.  Driver could provide
its own CPUID to subqueue mapping method through ifnet.if_mapsubq,
which is used when ALTQ's packet scheduler is not enabled.  ALTQ's
packet schedulers always map CPUID to the default subqueue.
if: Remove unused IFNET serializer enum, macros and functions.
if: Optimize ifnet_serialize_array_ function a little bit

IFNET_SERIALIZE_ALL is only used on init, stop and configuration path,
which is much less often then IFNET_SERIALIZE_TX; use __predict_false
for IFNET_SERIALIZE_ALL.