Ensure test_agent_manager handles random hashseeds

Several tests in test_agent_manager.py fail when tox is run using the
hashseed 2701526934, this is down to the nature of using dictionaries
and sets in Python causing some function calls and function arguments
to be out of order. This patch fixes this by either specifying that
assert_has_calls does not need to assert the order, just that the calls
were made, or by letting the unit test get affected in the same way as
the code, e.g. add variables to a dict so they are ordered by the python
hashing algorithms in the same way as they would be in the real code.

Change-Id: If83d1f33c187eab45c2a65fd50fd70cce011c9e7
Partial-Bug: 1348818
Enable no-name-in-module pylint check

Add _MovedItems (from six.moves) to pylintrc ignored-modules, and adjust
one import of sqlalchemy.orm.properties.RelationshipProperty.

s.o.p.RelationshipProperty is created at import-time in a rather
exciting manner - rearranging the import in this way forces the
import-time code to be executed and seems sufficient to satisfy the
pylint static check.

Change-Id: Ic99dc2b7dfac75930a5c446ae899eaae09ee6174
_update_router_db: don't hold open transactions

This patch prevents the L3 _update_router_db method from
starting a transaction before calling the gateway interface
removal functions. With these port changes now occuring
outside of the L3 DB transaction, a failure to update the
router DB information will not rollback the port deletion
operation.

The 'VPN in use' check had to be moved inside of the DB deletion
transaction now that there isn't an enclosing transaction to undo
the delete when an 'in use' error is raised.

===Details===

The router update db method starts a transaction and calls
the gateway update method with the transaction held open.
This becomes a problem when the update results in an
interface removal which uses a port table lock.

Because the delete_port caller is still holding open a
transaction, other sessions are blocked from getting an
SQL lock on the same tables when delete_port starts
performing RPC notifications, external controller calls,
etc. During those external calls, eventlet will
yield and another thread may try to get a lock on the
port table, causing the infamous mysql/eventlet deadlock.

This separation of L2/L3 transactions is similiar to change
I3ae7bb269df9b9dcef94f48f13f1bde1e4106a80 in nature. Even
though there is a loss in the atomic behavior of the interface
removal operation, it was arguably incorrect to begin with.
The restoration of port DB records during a rollback after some
other failure doesn't undo the backend operations (e.g. REST calls)
that happened during the original deletion. So, having a delete
rollback without corresponding 'create_port' calls to the backend
causes a loss in consistency.

Closes-Bug: #1377241
Change-Id: I5fdb6b24bf2fb80ac5e36a742aa7056db72c8c7d
enable F402 check for flake8

The change removes the shadowed loop variables and enables F402 checking

Change-Id: I015797feec463ffb0b5e97229a6ec2c9a41df9de
Partial-Bug: 1329017
Remove XML support

XML support in Neutron has always been a second class feature to the
JSON API and broken for many extensions and outputs. The XML API been marked as
deprecated for the Icehouse and Juno release and is ready for removal in
Kilo.

Change-Id: I611aa9382ba3bfb08b2970c63e83b0fdd3d2e8a4
Closes-Bug: #1380787
Fix 'Length too long' error in neutron-dsvm-functional tests

testr is occasionally failing with 'Length too long' for
neutron-dsvm-functional test cases.

The issue is seen when the size of the testr log file size goes into MBs.

(Please see the bug comments for the details on the testr logs)

This patch fixes the issue by disabling debug logs in the tests.

Change-Id: I48fc9d14f6886f86761038ee4d106fbbe59b6890
Closes-bug: #1382579
Adds an option to enable broadcast replies to Dnsmasq

Adds a flag for DHCP agent configuration
to add dhcp-broadcast flag to Dnsmasq process
In order to support virtual network on top of Infiniband
Fabric, there is a requirement to receive DHCP response
via broadcast message (according to IB Spec).

DocImpact
Change-Id: I95329e535bacf14b650a8f37179ecd020b5bfafe
Closes-Bug: #1293953
Merge "_update_router_db: don't hold open transactions"
Merge "Adds an option to enable broadcast replies to Dnsmasq"
Merge "Fix 'Length too long' error in neutron-dsvm-functional tests"
Merge "Remove XML support"
Merge "Enable no-name-in-module pylint check"
Merge "Ensure test_agent_manager handles random hashseeds"
Merge "enable F402 check for flake8"