[WIP] BGP Dynamic Routing

BGP dynamic routing functionality. A new API extension to allow create
RoutingPeers (remote peers to which exchange routes) and
RoutingInstances, which can be seen as interchange policies: whether to
advertise, if so: which networks to advertise, and whether to discover.

Agent scheduling functionality has been added as well: by default, a
routing peer is scheduled to first available agent who asks for routes,
more or less like the L3 agent works.

A user is able to reschedule peers and instances to another agents and
disable auto-scheduling to gain more control or offer agent HA
functionality, for instance.

(Not developed yet). Agents are associated automatically to routing
instances too. The task that RoutingPeers do (what to advertise and
whether to discover), depend on the policies defined in the Routing
Instances. So agents can be seens as the relation between the two
entities.

The agent runs a periodic task that requests for a routes to advertise
. According to networks associated to routing instance, the
Dynamic Routing Plugin returns all the subnets created in the associated
networks.

(Not developed yet) At the same time, agent returns back the discovered
routes and Dynamic Routing Plugin is responsible to save it into
'extraroutes' table of the network's routers.

Implements: blueprint bgp-dynamic-routing
Co-Authored-By: Taku Fukushima <tfukushima@midokura.com>
Change-Id: If55b5940c16c6fdd55cc15567b430b027b59a50b
Added docstrings to get_peers and get_advertisenetworks

This patch adds the docstrings to DRAgentPluginApi#get_peers and
DRAgentPluginApi#get_advertisenetworks. The both methods return the
dictionaries but it was not explicit what kind of data would be
returned. So I added them to the both methods.

Change-Id: I4f9cb05a40f024b12ad40051bbb26e7068891796
Signed-off-by: Taku Fukushima <tfukushima@midokura.com>
Added the merge logic for the advertised information

This patch adds the merging logic of the advertised information of the
peers and the routes retrieved by the RPC calls in dr_agent.py.

Change-Id: I29875b3bfa950e4310f8fc4a6a7a10b938c22c2b
Signed-off-by: Taku Fukushima <tfukushima@midokura.com>