Split pf_route() into pf_route_to(), pf_route_tag_to(), pf_route_tag_afto(), and pf_forward[46](). Make dummynet use pf_forward[46]() when packets are tagged for forwarding. Make pf_send_tcp() / pf_intr() use pf_forward[46]().
What we gain:
- split the logic of route-to and af-to from actually sending the packets out, pf_route_to() becomes a very small function with a clear role, the code should be easier to understand and review
- syncookies work with route-to
- synproxy works with route-to
- reinjection from dummynet skips already taken pf_test()
- dummynet pipes can be used separately on inbound and outbound path
- sending to dummynet occurs only in one place in pf.c and works for normal routing, route-to and af-to