Fix epoch-related panic in ipdivert, ensuring in_broadcast() is called within epoch. This got broken in r353292 back in October 2019.
As recent change requires calling in_output() within epoch, it is easier to widen epoch coverage within div_output() instead of cherry-picking individual functions.
Simplify gigantic div_output() by splitting it into 3 functions, handling preliminary setup, remote "ip_output" case and local "netisr" case. Leave original indenting in most parts to ease diff comparison.
Indentation will be fixed by a followup commit.