Clean up tenant resources when one is deleted

OpenStack projects currently do not delete tenant resources when a tenant
is deleted. For example, a user registers to a public cloud, and a script
auto generates a Keystone user and tenant, along with a Neutron router and
a tenant network. Later, the user changes his mind and removes his
subscription from the service. An admin deletes the tenant, yet the router
and network remain, with a tenant id of a tenant that no longer exists.
This issue can cause ballooning databases and operational issues for
long-standing clouds.

The blueprint proposes the ability to listen to Keystone tenant delete
notifications and sending delete calls for each tenant resources.
Additionally, we'll expose a new CLI tool that deletes a tenant, or
delete tenants that don't appear in Keystone. The CLI tool can be set
up as a cron job.

Change-Id: I383e909d017b7c7b1a0039c79b3ed95c71f1e726
Merge "Clean up tenant resources when one is deleted"