implify and improve netisr2 significantly:
- Allow protocols to map mbufs to flow IDs, and flow IDs to CPUs
- Always use the flowid field in the packet header to carry flow IDs with packets
- Always use write-locking for protocol registration, even if we've compiled out read-locking for the fast path
- Don't lock around per-workflow statistics
- Use a simpler default flow->CPU mapping for protocols without specific affinity requirements