Remove detect_type from various models

The `detect_type` method is no longer necessary with new_with_type_sti_mixin.

However, removing `detect_type` requires that *all* EMS Refreshers set the type
attribute for all STI objects.

* removes `detect_type`
* removes `default_type` for all models
* ensures that all refreshers set :type
* removes all references to `detect_type`
* removes all references to `default_type`
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