This patch extends network epoch coverage on output path. Now
calling ip_output() and ip6_output() requires epoch. This
eliminates a bunch of epoch recursions, and what is important
it eliminates ALL epoch recursions happening on the fast path:
forwarding, TCP in/out, UDP in/out.
It also relaxes assertions in PCB lookup functions, since now
ipi_lock is almost unused, we rely on ipi_list_lock/ipi_hash_lock
for modifications and on the epoch for lookups.
The above two changes are somewhat tied together, thus a single
review. The commit plan is 14 commits, full history available
here: