Remove SELECT FOR UPDATE use in update_firewall

SELECT FOR UPDATE expression, which is triggered with the use of the
SQLAlchemy Query object's with_lockmode('update') method, is
detrimental to performance and scalability of the database
performance code in Neutron due to the lock contention it produces.

SELECT FOR UPDATE can be entirely avoided in update_firewall method
with the use of single-shot UPDATE expressions.

Change-Id: I333f726498192295116ca96ff5ca9012c36a6fd1
Remove chain for correct router during update_routers()

The existing code incorrectly used the stale value from a previous list
comprehension - and deleted the chains for the wrong router :(
(Found via pylint)

Also: change to using a set() rather than a list(), since it is used for
repeated membership tests.

Also: refactor test cases to remove test case duplication.

Closes-Bug: #1362466
Change-Id: I4df400d57bab5427362db47a715576faa6340173
ofagent: Enable local arp responder for TYPE_FLAT

handling TYPE_FLAT is particularly useful because,
as stated in README, a flat provider network is
the recommended way to provide public network connectivity
for ofagent.

Related: blueprint ofagent-l2pop
Related: blueprint ofagent-merge-bridges
Change-Id: I4f9145ecb6ade44fc884ce7f8842f5e33385391e
ofagent: Enable local arp responder for TYPE_LOCAL

Related: blueprint ofagent-l2pop
Related: blueprint ofagent-merge-bridges
Change-Id: I838917ffffff8fd52c68b4633bd84dccdfe656de
Merge "Remove SELECT FOR UPDATE use in update_firewall"
Merge "Remove chain for correct router during update_routers()"
Merge "ofagent: Enable local arp responder for TYPE_FLAT"
Merge "ofagent: Enable local arp responder for TYPE_LOCAL"