Implement ModelsMigrationsSync test from oslo.db

Add tests to verify that database migrations produce
the same schema as the database models.

Also for MySQL, check that all tables are configured to use InnoDB
as the storage engine.
These tests make use of the ModelsMigrationsSync test class from
oslo.db and the load_tests protocol from Python unittest.

Closes-bug: #1346444

Change-Id: Ic0e7eb37c30cc5e94cbdbddf07a6dc1ebf377c17
Iterate over same port_id if more than one exists

In certain cases where multiple ports can have the same
external_ids:iface_id property, the ovs agent will arbitrarily choose
one and ignore the rest. In case the chosen port isn't on the
integration bridge the ovs agent is managing, an error is returned to
the calling function. This is faulty since one of the other ports may
belong to the correct bridge and it should be chosen instead.

This is interesting for future L3 HA integration tests, where 2
different instances of l3 agents are needed to run on the same machine.
In this case, both agents will register ports which have the same
iface_id property, but obviously only one of the ports is relevant for
each agent.

Closes-bug: #1370914
Related-bug: #1374947
Change-Id: I05d70417e0f78ae51a9ce377fc93a3f12046b313
L3 Agent should generate ns_name in a single place

Currently the l3 agent has 2 places where it allows generating ns_name
of specific router_ids (ie. qrouter-<router_id>): in the RouterInfo's
constructor, and in _cleanup_namespaces. This patch proposes a
unification of this creation code with a property which lives in
RouterInfo's namespace. A simpler fix was also made for snat_ns_name.

This patch also offers a single way to initialize a new RouterInfo.

Related-bug: #1374946
Related-bug: #1374947
Change-Id: Ia028236b73a22ff534acee00b46c86b134dc987e
Divide _cleanup_namespaces for easy extensibility

This division of the function to 2 different functions allows for
easier overwriting in the l3 test agent used by the HA functional
tests, and later by the integration tests.

Related-bug: #1374947
Change-Id: I8f277759747c8a142f5c023aa3511b00a886348c
Merge "Iterate over same port_id if more than one exists"
Merge "Implement ModelsMigrationsSync test from oslo.db"
Merge "L3 Agent should generate ns_name in a single place"
Merge "Divide _cleanup_namespaces for easy extensibility"
Merge branch 'master' of https://github.com/openstack/quantum