Simplify L3 HA unit test structure

Previously we had two fake test plugins: With and without agents.
I removed the one without agents and merged two test cases.
This allows test writers to add additional tests more easily
without mocking things that should not be mocked.

Change-Id: I6f899f86034145ac88b5c2e0f3036f7477f9702f
L3 Agent restructure - observer hierarchy

This commit creates the basic observer hierarchy for advanced
services, as part of a multi-step refactoring effort of the L3 agent.

The change set has these modifications:

- Device drivers for VPN and FW services are loaded.
- AdvancedService child instances are created for VPN and FW.
- L3EventObservers is created by the L3 agent and the VPN and FW
  service objects are registered for notifications of events.
- VPN device driver event handlers moved to VPN service instance.
- VPN device driver callbacks to VPN agent, moved to VPN service.
  to service from the VPN device driver.
- Test cases updated and moved related to these changes.
- UT updated to test new methods and refactoring changes.

Future commits will massage the event notification points in the
L3 agent, and implement handlers.

Please keep these things in mind, when reviewing:
- The goal is to refactor the code and not 'improve/change'
  functionality (other than broken tests).
- This is one step of a series of steps to move to the 'final'
  restructuring.
- Because we're incrementally changing the code, there may be
  temporary changes to allow existing code to continue to work.

Co-Authored-By: Assaf Muller

Change-Id: I674c72e37b56aa1f729110310e6f697297c47c09
Partially-implements: blueprint restructure-l3-agent
Remove locking from network and subnet delete op

delete_subnet in Ml2 plugin instead of using SELECT FOR
UPDATE deletes the IPAllocations that can be auto-deleted
straight away.
An exception is raised if there are ports that cannot be
autodeleted.

delete_network in ML2 plugin tries to delete all ports
and subnets before performing the network deletion.
No lock is needed here - if some other process modifies
the Port or Subnet table, adding new items, the network
deletion will fail because of a violation of a foreign
key contraint.
In that case the operation will be retried.

Change-Id: Ib4e9441a95d6c80b92a43d55fdeb18d7b51a1cf3
Closes-bug: #1332917
Cleanup req_format in test_api_v2_resource

Since XML support has been removed test cases in test_api_v2_resource
no longer need to specify req_format.

Change-Id: Ic6572abc3121535e19d21e9a34d70bb42b9782de
Related-Bug: #1380787
Merge "Remove locking from network and subnet delete op"
Merge "Cleanup req_format in test_api_v2_resource"
Merge "Simplify L3 HA unit test structure"
Merge "L3 Agent restructure - observer hierarchy"
Merge branch 'master' of https://github.com/openstack/quantum