Failure during termination should always leave state as Error(Deleting)

Delete is a non-reversible operation for the user, and once the
user has indicated that they want to delete the instance from that
point on is the system's problem to complete the delete as soon as
possible.

If anything fails during the delete that the system cannot recover
from then the instance should be left in an Error(Deleting) state.
Anything else, in particular reverting to an Active(None) state, makes
it look like the system has ignored the request.

Currently InstanceTerminationFailure is explicitly caught, but the
exception does not propagate so the instance_fault wrapper does not
get a chance to log the failure.  Also terminate_instance is wrapped
by reverts_task_state which resets the state to Active(None)

This change removes the revert_task_state wrapper and catches all
exceptions so that unhandled exceptions always leave the instance
in Error(Deleting)

Change-Id: I5fb1bbd56035792f566a6e076edfe7a69df006ef
Closes-Bug: 1254122
Refactor return value of fixed_ip_associate calls

This makes the fixed_ip_associate* calls more object-friendly.
Rather few things outside of the tests care about the return value of
these methods, so this is less invasive than it looks. All of the
tests and manager methods that this touches will be replaced
as part of the objectification going forward, so this is only
transitional.

Related to blueprint nova-network-objects

Change-Id: I4764fa0bfca355377d2642ddf3fbfe17cf5b761e
Make fixed_ip_get_by_address() take columns_to_join

This will let the FixedIP object make some significantly more
efficient queries by asking for network and/or instance at the
same times as the FixedIP itself.

Related to nova-network-objects

Change-Id: I7ae971469585f072cd039f30faf71a4d48c9fd04
Merge "Refactor return value of fixed_ip_associate calls"
Merge "Make fixed_ip_get_by_address() take columns_to_join"
Merge "Failure during termination should always leave state as Error(Deleting)"