OVS flows apply concurrently using a deferred OVSBridge

This change is an improvement of the commit
501213686886baccd3280e10b8856a25d3517519 and provides a cleaner
implementation. Previously flows were applied on
OVSBridge.defer_apply_off which could be called by an other
greenthread: it was impossible to ensure that all flows are applied
in a unique OVSBridge.defer_apply_off call. This change ensures that
all flows defined using a DeferredOVSBridge are applied on
DeferredOVSBridge.apply_flows or DeferredOVSBridge.__exit__ if not
exception is raised.

Author:         Cedric Brandily <zzelle@gmail.com>
Co-Authored-By: Edouard Thuleau <edouard.thuleau@cloudwatt.com>

Related-bug: #1263866
Change-Id: I1f260629ef95b98ee80e2ff946c3606da8fe7608
Make _build_uri_path output predictable

This is done by ensuring that filters are
serialized in their alphabetical order.

Tweak tests affected by this.

This is done in the context as defined by
etherpad: neutron-random-hashseed

Partial-bug: #1348818

Change-Id: Ibe79716a340195ca0365f276ef6e3e728f1a94a1
Fix 500 error  during router-update for dvr routers

This was caused because the l3 service plugin was
erroneously calling a method on self, whereas the
method is implemented by the core plugin.

Closes-bug: #1352786

Change-Id: I0746eee314730370b2df4bef6d9fd41680e2e3d1
Merge "OVS flows apply concurrently using a deferred OVSBridge"
Merge "Make _build_uri_path output predictable"
Merge "Fix 500 error  during router-update for dvr routers"