Allow user to specify image to use during rescue - V2 API changes

This commit includes the V2 changes.
Making changes in v2 API to take an extra parameter rescue_image_ref
as part of the rescue action API.
If specified, this image_ref will be used to rescue the instance.
If the image is not specified, then the base image ref is used by
default.

Partially Implements: blueprint allow-image-to-be-specified-during-rescue

DocImpact

Change-Id: I985b21264841a6a18a66d19ccd41753f78576776
Remove utils.reset_is_neutron() to avoid races

If a unit test does not call utils.reset_is_neutron() when
it is complete, it may introduce a race condition because
the utils.is_neutron() value is cached to the old result.

This patch removes the utils.reset_is_neutron() and instead
makes sure that we never have a cached value for it.  It
also refactors _is_neutron out of vmwareapi.VMOps because
it cache the result unnecessarily.

Change-Id: I2440e308b00979b31c750513d14608808a295c33
Closes-Bug: #1309043
make ec2 errors not useless

The ec2 error log message on an unexpected exception doesn't
include the actual exception. From the best I can tell this is
because some time in the past the log message might also have
been returned to the user. However the current code builds the
user message completely separately.

We are tickling a bug on ec2 in the volumes stack that causes
"Unexpected KeyError raised", however without the stack trace it's
really hard to understand where this went wrong.

Change-Id: Ia0f9e6f957fa8788dc9e87631a10bc9631bb930b
Merge "Allow user to specify image to use during rescue - V2 API changes"
Merge "make ec2 errors not useless"
Merge "Remove utils.reset_is_neutron() to avoid races"