Refactor test cases related to instance object

After the blueprint unified-object-model, all of the instances
should be represented by an instance object but not a db
instance dict.

In some test cases, they are still using db instance dict,
we should change those test cases to use instance object.

The fix include three parts:
1) Add a new stub method fake_fault_obj in
nova/tests/fake_instance.py to help convert a dict fault to an
object fault.
2) Add a new stub method fake_instance_obj in
nova/tests/fake_instance.py to help convert a dict instance to
an object instance.
3) Make sure all test cases related to "fault" and "instance" passed.

Closes-Bug 1230125
Partial-Bug 1212915

Change-Id: Ie54fface139e4ad042b9a748c7409c3698875413
Fix loading instance fault in servers view

If VM schedule failed, then VM will be set to ERROR state,
but "nova show" does not show the fault of the VM.

The fix use lazy load to get instance fault if the instance
went to ERROR state.

Closes-Bug: #1212915

Change-Id: If286fd0176be8307c50b2a7c3534fff33fa5c10f
Merge "Refactor test cases related to instance object"
Merge "Fix loading instance fault in servers view"