Treat instance like an object in _default_block_device_names

The _default_block_device_names method already gets an instance object
but was treating it like a primitive dict so this change enforces the
object usage with dot notation when accessing fields.

Also updates the existing unit tests to use an instance object.

Part of blueprint compute-manager-objects-juno

Change-Id: I2706fa081ba427956dc4f643d1e5664eaa2573ed
objects: Make use of utils.convert_version_to_tuple()

Make use of the convert_version_to_tuple() utility in objects that had
inlined an implementation of the same thing.

Change-Id: If48df452baa79eeb52218fcbad0e388edf8fd416
Fix ability to generate object hashes in test_objects.py

Change https://review.openstack.org/#/c/114260/3 broke the ability to
generate object hash codes by setting GENERATE_HASHES in the
environment.

Change-Id: I08e015b44ac12655d33e0b04d5608d68c1f13270
Merge "Fix ability to generate object hashes in test_objects.py"
Merge "objects: Make use of utils.convert_version_to_tuple()"
Merge "Treat instance like an object in _default_block_device_names"