Add proper response codes to http request mocks
[#OHAI-434] Detect and use the latest (recognized-working) EC2 metadata API

Supported API's are determined at instance launch and are not extended
over the life of the instance. As such the current code - which makes an
assumption of a specific version - will fail depending on the age of the
instance.

This new code probes the instance metadata endpoint for available
versions, determines the most advanced version known to work and
executes the metadata retrieval using that version.

If no compatible version is found, the plugin returns an empty hash.
Add a class comment explaining the multi-version retrieval logic
Handle non-200 response codes in response to EC2 best_api_version query
Extend EC2 mixin specs to ensure that proper metadata API is selected
Revert db97a05 "Extend EC2 mixin specs..." as btm has added an additional spec.
OHAI-434: Add unit tests for Ec2Metadata#best_api_version
Whitespace
OHAI-434: Raise error on non-200 response when determining EC2 metadata version
OHAI-434: Raise error when no supported EC2 metadata version is found
OHAI-434: Order metadata versions with basic String/Array#sort
OHAI-434: Raise error on non-200 response while retrieving EC2 metadata
Merge branch 'OHAI-434'
add root_group plugin
Merge branch 'OHAI-428'
OHAI-428: Limit root_group unit tests to their own platform
adding support for GCEL which is kinda ubuntu
Merge branch 'OHAI-450'
add google compute engine as cloud provider
this will be easy to mock while testing