Based on the observation that a call to sync_routers can be very
slow (minutes) on some setup, and that profiling data show that
a significant amount of time is spent in many individual calls
of _process_sync_ha_data to _populate_mtu_and_subnets_for_ports for
a single interface, this change refactors _process_sync_ha_data to
call _populate_mtu_and_subnets_for_ports only once on a list of
interfaces instead of <n> times.
Said otherwise:
- before: O(#routers) SQL queries
(one per network of an HA interface of a router)
- after : O(1) SQL queries
(on the set of networks with an HA interface on a router)
A basic test shows a drastic improvements, from minutes to around
one second, in the processing of a sync_routers call with 256 routers.
Change-Id: I3a00c8fbb245ab3b6d93bdaa97f3435570992791
Related-Bug: 1692971