When a bgp-dragent is deployed with enable_new_services
set to False so that the agent is disabled upon creation
the first attempt to enable it again throws an error but
the second time works, see the bug report.
The neutron.common.rpc and exceptions were rehomed into neutron-lib and
are currently shimmed in neutron 
This patch consumes those modules from neutron-lib by using lib's
modules rather than neutrons.
This executes the dr scheduler on the callback for create_bgp_speaker.
Also add the following variable for devstack.
BGP_SCHEDULER_DRIVER: specify dr scheduler driver
This patch moves the BGP service plugin, agent, driver, and
tests out of the neutron repository and into the
Partially-Implements: blueprint bgp-spinout
Co-Authored-By: vikram.choudhary <firstname.lastname@example.org>