Optionally delete namespaces when they are no longer needed

Adds a configuration option to tell the network agents to delete
namespaces when they are no longer in use.  The option defaults to
False so that the agent will not attempt to delete namespaces in
environments where this is not safe.

This has been working well in deployments where iproute2 has been
patched with commit 58a3e8270fe72f8ed92687d3a3132c2a708582dd or it is
new enough to include it without being patched.

Change-Id: Ice5242c6f0446d16aaaa7ee353d674310297ef72
Closes-Bug: #1250596
Related-Bug: #1052535
Fix showing nonexistent NetworkGateway throws 500 instead of 404

Change-Id: I5304bd52f7a5ae22fbc0d48206d7c1d282b34a91
Closes-Bug: #1252921
Stop logging unnecessary warning on context create

The context was previously logging at the 'warn' level when unknown
kwargs were being passed to its __init__().  Since the agents were
passing tenant=None with each rpc request, this was generating an
unreasonable amount of log chatter that would not be useful to an
operator.  The fix is to log at the debug level instead so that
the operators don't see the output by default but developers can
still choose to.

Change-Id: I5c328f628c597eb949c1fe67b23120d2b5d1c7da
Related-Bug: #1254530
Partial-Bug: #1255441
Merge "Stop logging unnecessary warning on context create"
Merge "Fix showing nonexistent NetworkGateway throws 500 instead of 404"
Merge "Optionally delete namespaces when they are no longer needed"