(#3681) Fix an EC2 bug where EC2 jobs lost track of their instance ID during recovery.
(#3683)  Eliminate the superflous call to DescribeInstances() after a state change.
(#3683)  Eliminate the superflous call to DescribeInstances() in GM_SEEK_INSTANCE_ID.
Merge branch 'master' into V8_X-gittrac_3681-branch

Conflicts:
	src/condor_gridmanager/ec2job.cpp
Improve memory management for ec2 gahp calls in the gridmanager.
Include ec2 job support in the gridmnager on macosx and windows.
Initial code for ssh keypair two-phase commit for OpenStack. #3682

OpenStack doesn't properly support the client token instance property to
do idempotent calls to RunInstances. We currently rely on that to avoid
double-submiting jobs when a failure occurs. Thus, we need to
re-introduce the use of the ssh keypair as an optional way to check if
an instance was submitted after a failure.

Some issures remain to be sorted out:
Right now, the job attribut IsOpenStack must be set to true and the user
can't provide an existing ssh keypair for this to work properly.
Matching instances to EC2Jobs by ssh keypair needs to be optimized.
If the EC2_VM_START command returns NEED_CHECK_VM_START, we need to
handle that differently for OpenStack.
Enable EC2 code in the gridmanager on Mac and Windows.
Add ec2 gahp command EC2_VM_SERVER_TYPE. #3755

This new gahp command issues a simple ec2 command and analyzes the
response to determine which of several implementations the server is.
The implementations detected are Amazon, OpenStack, Nimbus, and
Eucalyptus. If the response doesn't look like any of these, "Unknown" is
returned.
Have gridmanager use new ec2 gahp command EC2_VM_SERVER_TYPE. #3755

Track the server type of each resource the gridmanager talks to, and
save the server type in the ad of submitted jobs in the new attribute
EC2ServerType.
Further work using ssh keypair for OpenStack EC2 submission. #3682

Use auto-detection of ec2 server type to decide if we need to use the
ssh keypair for two-phase submission.
Improve cleanup of ssh keypairs.
Allow GahpClient users to query if their request has gone to the gahp server
Finish using ssh keypair for OpenSTack EC2 submission. #3682

Ensure ssh keypair creation and deletion are done properly in recovery
cases.
Disallow use of pre-existing ssh keypair when client token doesn't work.
Merge branch 'V8_X-gittrac_3681-branch'