Merge pull request #180 from fzylogic/master

fix call to list_routers()
Add an assertion to ensure that router rebuilds set the proper tenant_id.
Check for missing VM's in `update_state` to catch failures in the config loop.
Merge pull request #181 from ryanpetrello/master

Add an assertion to ensure that router rebuilds set the proper tenant_id
Merge pull request #182 from ryanpetrello/master

Check for missing VM's in `update_state` to catch failures in the config loop
Correcting typo in default ignored_router_directory
Merge pull request #183 from jordant/master

Correcting typo in default ignored_router_directory
Correct a changed parameter to neutronclient.

https://github.com/openstack/python-neutronclient/commit/2203b013fb66808ef280eff0285318ce21d9bc67
Merge pull request #184 from ryanpetrello/fix-neutronclient

Correct a changed parameter to neutronclient.
Read firewalls rules instead of labels for the health check.
Merge pull request #185 from ryanpetrello/master

Read firewalls rules instead of labels for the health check.
Support for local external port configuration

Add's ensure_local_external_port which sets up an external gateway
tap the same way we do for the management network.

New config options
- external_subnet_id
- external_prefix (default 172.16.77.0/24)
- plug_external_port (default False)
Add new config options to rug.ini
code cleanups
more format fixes
flake8 fixes
Merge pull request #186 from jordant/master

Support for local external port configuration
Include router name as hostname in config object
hostname related tests
Implement network hot plugging.