Delete FIP namespace when last VM is deleted

On a compute node when the last VM with a floating IP association
is deleted, the L3 agent did not delete the fip namespace. However
the api server has already deleted the fip agent external gateway
port from the database.

This problem is happening on DVRs because the deletion of a VM port,
in addition to a floating IP disassociation, may also result in the
removal of the external gateway port binding AND the removal of the
fip agent external gateway port.

When the L3 agent is handling a routers_updated notification, it is
not processing floating ip address updates when the router has both
a floating ip disassociated and a external gateway port deleted.
This patch corrects this problem.

Closes-bug: #1377156
Change-Id: I86bdef7c9d988cb9d87c88adde55548d459f29a5
test_dhcp_agent: Fix no-op tests

Fix some uses of assertCalledOnceWith, which seems like a mistake of
assert_called_once_with.

Also, add a hacking check to prevent the mistake.

Closes-Bug: #1397184
Change-Id: I12d077e2724d52eff65d55aff1130fbbb69671b1
Fix base test class for functional api testing

To support in-tree functional api testing, the test class common
across all types of testing can't import modules that define
configuration that Tempest also defines because duplicate
configuration definitions result in runtime errors.  A previous change
(I44251db399cd73390a9d1931a7f253662002ba10) moved conflicting imports
to a separate module, but subsequent additions have added new conflicting
imports.

This change creates a new test class that is safe to use for all types
of testing (neutron.tests.sub_base.SubBaseTestCase), ensures that the
existing existing base test class (neutron.tests.base.BaseTestCase)
extends it, and documents their respective responsibilities.  This
will hopefully make it less likely that the functional api job will be
broken by changes to the base test class.

Implements: bp retargetable-functional-testing

Change-Id: Ifa270536481fcb19c476c9c62d89e6c5cae36ca1
Merge "Delete FIP namespace when last VM is deleted"
Merge "Fix base test class for functional api testing"
Merge "test_dhcp_agent: Fix no-op tests"