Ensure only pickle-able objects live in metadata

Conductor api has been added to InstanceMetadata object, but it cannot
be serialised. This breaks storing metadata in memcache, because the
information needs to be passed through pickle.

Since the field was not used outside of the constructor, it can be
removed to fix the problem.
Also add a test that pickles a sample InstanceMetadata to catch similar
failures in the future.

Fixes bug 1160900

Change-Id: I7e8cef5a131290eaa1402d48295026bcac6baff6
(cherry picked from commit 2da5ea6e5685ae5c349fc1d175594aecbe0a0e23)
Accepts aws-sdk-java timestamp format

The aws-sdk-java timestamp format is "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
which contains millisecond representation. However, the current
implementation does not accept this kind of format.

References:
https://github.com/aws/aws-sdk-java/blob/master/src/main/java/com/amazonaws/auth/QueryStringSigner.java#L173

Adds ability to parse this format in ec2utils.is_ec2_timestamp_expired.

Fixes bug 1156445.

Change-Id: I389ff8b9c6c91b699538b889add264d66dbb8131
(cherry picked from commit 69e940c661731c8ac3cc0cf4e874929c86dcdeb2)
Make compute/manager use conductor for unrescue()

The compute_api.unrescue() call makes direct database queries, which means
it can't be called directly from compute manager. This patch adds support
in conductor for proxying this request and makes compute manager utilize
it.

Fixes bug 1167619

(cherry-picked from 188f306aa88a6a5b73959c74f1642720d7627789)
Change-Id: I158c64cabdfe436462f5669047fb930819a13c50
Merge "Ensure only pickle-able objects live in metadata" into stable/grizzly
Merge "Accepts aws-sdk-java timestamp format" into stable/grizzly
Merge "Make compute/manager use conductor for unrescue()" into stable/grizzly