Fix: Add Route Reconciliation
This PR is still very early and is not fully implemented, but I wanted to start to get some feedback going on the direction of this before I got too much further down the road.
The end goal of this PR is to enable route reconciliation within the route sync controller. However, in order to do that, I wanted to break out injectRoute() from the NetworkRoutesController.
Also, over the years, it has become obvious that the injectRoute() function is hard for new users to parse, and there is often a lot of confusion about how it works because the logic is complicated. So this also attempts to split out the logic in inject route into BGP type logic as well as Route type logic.
Final fix for: https://github.com/cloudnativelabs/kube-router/issues/1738