Simplify using external routers and metadata

The dhcp agent only pushes out the metadata
static route when the subnet is isolated, and it
determines that by checking if the gateway_ip is
not set. This makes it tricky to use external
routers and metadata from dhcp at the same time.

This patch changes how the dhcp agent determines
that the subnet is isolated. It now considers it
isolated if there is no Neutron router on it.
This makes it straightforward to use an external
router on a provider network and get the
metadata from the dhcp namespace.

Change-Id: I0e29a2f058564c267176dab26da00f6ef579808b
Closes-Bug: 1236783
Don't shadow str

In the  agent/linux/ovs_lib.py we were shadowing the str keyword with
local variable. Let's not do that.

Change-Id: If800804b1e1f12d782bac524c92f300bd77fdd3c
Merge "Don't shadow str"
Remove confusing comment and code for LBaaS

The comment "the driver is optional" is inconsistent with what actually
done. And "vif_driver = None" after raising an exception makes no sense.
So this patch removes these lines.

Change-Id: I7f3d5b6df61037307e952a478f47c59485601847
Merge "Simplify using external routers and metadata"
Merge "Remove confusing comment and code for LBaaS"