Make get_next_device_name() handle an instance object

This utility method is passed an object, but does things that assume it
is a dict. This fixes that, and updates the tests to match.

Related to blueprint flavor-from-sysmeta-to-blob

Change-Id: I7041b8ffae100463eafe45926f0d16d00165ba73
Fix for extra_specs KeyError

During _cold_migrate, there is a code path when
extra_specs is not present in the request_spec['instance_type']
bag. Identified one test case where removing extra_specs
causes the same error as reported in the bug below. We
just need to tolerate this by using a default value for pop()

Closes-Bug: #1394569

Change-Id: I9d4d02069322af1a1f0b84c1e86d2e586c6712d8
Merge "Fix for extra_specs KeyError"
Merge "Make get_next_device_name() handle an instance object"