Refactor some router-related methods

This is done in preparation for the distributed
router functionality. Breaking down and factoring
out some functionality helps the DVR work to come
as a more loosely coupled addition to the L3
centralized case. This also ensures that the two
code bases are kept separately to minimize chance
of regression, and simplify code coverage effort.

Partially-implements: blueprint neutron-ovs-dvr

Change-Id: Ide1bc193666ce03a3ae26b1869bde8093ed453ef
Merge "Refactor some router-related methods"