Add VM raw_power_state

* Add migration to add VM raw_power_state

https://bugzilla.redhat.com/show_bug.cgi?id=1115546
https://bugzilla.redhat.com/show_bug.cgi?id=1115557
Calculate power_state from raw_power_state

Add logic to calculate a VM's power_state from the raw_power_state.  This helps
keep the power_state in sync with the raw_power_state.

Also

* prefer setting raw_power_state over state=
* update state= to set raw_power_state
* privatize power_state= to prevent unwanted calls
* alias current_state to state instead of having a separate method definition

https://bugzilla.redhat.com/show_bug.cgi?id=1115546
https://bugzilla.redhat.com/show_bug.cgi?id=1115557
Update EMS Refresh to set raw_power_state

EMS Refresh now sets VM raw_power_state instead of power_state or state.

This allows the raw_power_state= logic to correctly set the corresponding
poewr_state value.  This way, the power_state and raw_power_state are kept in
sync during EMS Refresh.

https://bugzilla.redhat.com/show_bug.cgi?id=1115546
https://bugzilla.redhat.com/show_bug.cgi?id=1115557
Update VM power ops

* openstack should select correct way to start a non-running instance based on
  raw_power_stateS
* when temporarily updating power_state after performing a power op, set the
  raw_power_state to a raw value

https://bugzilla.redhat.com/show_bug.cgi?id=1115546
https://bugzilla.redhat.com/show_bug.cgi?id=1115557
Specs:  Use raw value for VM state

* update the shared specs for VmOrTemplate#is_available? by introducing variables
  to capture the raw_power_state for each provider
* update the provider specs that include the VmOrTemplate#is_available? shared
  specs by adding the spec variables
* various updates to use provider raw VM state values

https://bugzilla.redhat.com/show_bug.cgi?id=1115546
https://bugzilla.redhat.com/show_bug.cgi?id=1115557
Specs: some power ops are unavailable for VmRedhat

Update the VmRedhatSpec to identify some power ops as unavailable to match the
implementation of VmRedhat.

https://bugzilla.redhat.com/show_bug.cgi?id=1115546
https://bugzilla.redhat.com/show_bug.cgi?id=1115557
Specs: set raw_power_state instead of power_state or state

Now that power_state is a calculated property instead of database field, specs
should update the raw_power_state field instead of attempting to edit the
read-only property.

https://bugzilla.redhat.com/show_bug.cgi?id=1115546
https://bugzilla.redhat.com/show_bug.cgi?id=1115557
Specs: Update automate tests with power_state

Avoid dereferencing the automate service object's attributes hash to get to
power_state (which only inspects the model's DB columns).  Instead, call the
method directly to get the power_state.

https://bugzilla.redhat.com/show_bug.cgi?id=1115546
https://bugzilla.redhat.com/show_bug.cgi?id=1115557
Specs: small updates to Rhevm ems_refresh specs

ensure both raw_power_state and power_state are correct after refresh.

https://bugzilla.redhat.com/show_bug.cgi?id=1115546
https://bugzilla.redhat.com/show_bug.cgi?id=1115557
Rubocop / Whitespace

Align hashes and remove some commented code lines.

https://bugzilla.redhat.com/show_bug.cgi?id=1115546
https://bugzilla.redhat.com/show_bug.cgi?id=1115557
Move calculcate_power_state to vmware_shared

TemplateVmware and VmVmware share the same logic for calculating the power_state
from the raw_power_state.

Moving this code to VmwareShared so that both classes share the same method definition.

https://bugzilla.redhat.com/show_bug.cgi?id=1115546
https://bugzilla.redhat.com/show_bug.cgi?id=1115557
Specs:  Clean up uses of state=

Remove straggling uses of state= where the value has already been replaced by
the raw_power_state value.

https://bugzilla.redhat.com/show_bug.cgi?id=1115546
https://bugzilla.redhat.com/show_bug.cgi?id=1115557
Remove VmOrTemplate#state=

The VmOrTemplate#state= became really confusing after adding in raw_power_state=
because VmOrTemplate#state= set raw_power_state, but VmOrTemplate#state returned
power_state.

Removing state= makes the picture a little clearer.

https://bugzilla.redhat.com/show_bug.cgi?id=1115546
https://bugzilla.redhat.com/show_bug.cgi?id=1115557
EmsEvent should call raw_power_state when possible

EmsEvent#change_event_target_state called target.state=, however, in the case of
VmOrTemplate, this should now be target.raw_power_state= since VmOrTemplate
no longer responds to state=

https://bugzilla.redhat.com/show_bug.cgi?id=1115546
https://bugzilla.redhat.com/show_bug.cgi?id=1115557
Remove migration spec that uses a global model.

This migration spec creates a global model reference, but the entire
migration isn't really needed.  The spec isn't testing anything except
pure ActiveMigration code, which isn't worth doing.
Fix issue where migration spec assumes AwesomeSpawn exists, but doesn't.
Changed migrations specs to require that migration_stub calls exist.

Before, using migration_stub could reference a global model.  The goal
of migration_stub always was to prevent loading global models so that
we can ensure that, at the least, tests enforced that rule.  Now,
migration_stub actually enforces the rule.

This exposed many places where migration_stub was being used incorrectly
or where the migration itself incorrectly referenced global models.  The
fixes, depending on the migration, include
- Add the stub if it's used by the migration itself, and was never there.
- If the stub is not used by the migration, but only for testing, add
  a spec-only `Class.new` style stub.  Most of the `Reserve` specs do
  this, so, a helper method was introduced to DRY it up.
- One migration specs used stubs, but upon further review that spec
  wasn't testing anything except pure ActiveMigration code, which isn't
  worth doing, so it was removed.
Event handlers should use raw_power_state= for vms

Now that VmOrTemplate#state= has been removed, event handler definitions should
set the raw_power_state directly.

https://bugzilla.redhat.com/show_bug.cgi?id=1115546
https://bugzilla.redhat.com/show_bug.cgi?id=1115557
Simplify VmOrTemplate#state

Now that the power_state is calculated correctly for different types of Vms Or
Templates, the VmOrTemplate#state method can be a little simpler.

https://bugzilla.redhat.com/show_bug.cgi?id=1115546
https://bugzilla.redhat.com/show_bug.cgi?id=1115557
Specs: Automate specs should set raw_power_state=

Several automate specs were still setting VmOrTemplate#state= instead of
VmOrTemplate#raw_power_state=.

Now that VmOrTemplate#state= is removed, these tests need to be updated.

https://bugzilla.redhat.com/show_bug.cgi?id=1115546
https://bugzilla.redhat.com/show_bug.cgi?id=1115557