Treat instance like an object in _prebuild_instance

The _prebuild_instance method is given an instance object
but was treating it like a primitive dict, so this change
uses dot notation to enforce the object usage.

Adds unit tests since this wasn't directly unit tested
before.

Part of blueprint compute-manager-objects-juno

Change-Id: Id22eb46ed3b4bd8fb48189a40f9df9bb114cd3d4
Treat instance like object in _validate_instance_group_policy

The _validate_instance_group_policy method gets passed an
instance object but was treating it like a primitive dict,
so this changes it to use dot notation when accessing
fields on the instance object.

Updates the existing test to pass an instance object.

Part of blueprint compute-manager-objects-juno

Change-Id: Icbe9fa06ad8f1b32a556241ec7b3269b1fcd5cd2
Report all objects with hash mismatches in a single go

The object hash test previously stopped when it hit the first object with
a mismatched hash. This meant that if you changed a couple objects, you
had to run the test, fix the first, run the test, fix the next, etc.
This patch collects all the data and then asserts the delta set, if
there were mismatches.

Change-Id: Ie35a4dbd6941a1f31e0cef7ea56fa2cc5e9a8ef0
Merge "Treat instance like an object in _prebuild_instance"
Merge "Report all objects with hash mismatches in a single go"
Merge "Treat instance like object in _validate_instance_group_policy"