Use uuid instead of name for lvm backend

Because libvirt lvm volumes are based on instance['name'], it means
that the actual names used in lvm storage are based on an operator
configuration variable: instance_name_template (default is
'instance-%08x').

However this is site changeable, and changeable at any time. This
creates 2 failure modes.

1. Operator changes this, the result is all volumes created before the
change are no longer able to be cleaned up by nova

2. Operator has changed this to something that includes end user
input, like %(display_name), which would allow one user to impact
another (user A has display name "bob", user B has display name
"bob_joe")

This changes the lvm backend to use instance['uuid'] as it's
identifier which we know is unique, non overlapping, and not
changeable based on whims of site policy.

It also provides limited backwards compatibility for cleaning up old
disks if the installation was using the default template (which is
safe), otherwise it logs a warning about possibly leaking a disk which
will need to be manually cleaned up. That should be removed once we
open the Juno tree.

UpgradeImpact - while there is no operator action required to upgrade
over this change, if the nova install included a non default value for
instance_name_template then old lvm volumes will need to be cleaned up
manually after old guests are destroyed.

Change-Id: Ib36b962971fd1f66ea9a0818e91fec59e118e686
Closes-Bug: #1285735
Merge "Use uuid instead of name for lvm backend"