[CloudFormation] Add waiter for stack completion
[CloudFormation] Add resources for stacks
[CloudFormation] Better populate resource attributes

Avoid n+1 redundant queries to populate stack resource attributes.

Per @trevorrowe’s comment: http://git.io/J2EFyw
[CloudFormation] Add Events resource
Merge branch 'master' into cloudformation_resources
[CloudFormation] Rename Event#event_id => Event#id
Fixed api doc plugin for new waiter method source.
Updated Client documentation with better examples for configuration.
Internal name change for clarity.
Improved instance credential refresh logic.

When instance profile credentials are near expiration, it was possible
previously for multiple threads to trigger a refresh. While to code to
update the credential values was behind a mutex, it was possible for
multiple calls to be made.

Resolved this by verifying the credentials were not updated while
waiting to aquire the lock.

    def refresh_if_near_expiration
      if near_expiration?
        @mutex.synchronize do
          _refresh if near_expiration?
        end
      end
    end
[CloudFormation] Improve resources

Per @trevorrowe’s comment: http://git.io/rx3KYg
Added Aws::AssumeRoleCredentials.

You can now construct an assume role credential provider. This object
will fetch crdentials from AWS STS via the assume role call.
It will also auto refresh credentials when the role credentials expire.

    credentials = Aws::AssumeRoleCredentials.new(
      role_arn: 'role-arn',
      role_session_name: 'session-name',
      client: Aws::STS::Client.new(...)
    )

The given `:client` will be used to make the assume role call.
You should construct client with credentials that can be used
to assume the target role.
Added a CHANGELOG entry for `Aws::AssumeRoleCredentials`.
Refactored `InstanceProfileCredentials` to use the `RefreshingCredentials` mixin.
Response stubbing now removes the retry errors handler.
Updated spec to pass when credentials/region not present.
Add Aws::EC2::Instance with support for decrypting windows password

Note: not sure what those inline credentials provide, so making no attempt to use them to create resources to test against - please give me a steer?
The response stubbing plugin now also configures default region and credentials when enabled.
Added getters for SQS::Queue attributes.

Added attr_reader style getter methods that return queue attributes.
These getter methods also type-cast the values from strings to natural
Ruby values.  This greatly simplifies accessing Queue attributes:

    # before
    queue.attributes['CreatedTimestamp'] #=> '1413825896' (epoc seconds)
    queue.attributes['DelaySeconds'] #=> '60' (string seconds)
    queue.attributes['QueueArn'] #=> 'arn'

    # after
    queue.created_timestamp #=> 2014-10-20 10:24:56 -0700 (Time obj)
    queue.delay_seconds #=> 60 (integer seconds)
    queue.arn #=> 'arn' (without extra queue_ prefix on method)

Fixes #139
Now grouping Queue attribute methods in the docs.