Added a simple response pager.

The pager is constructed with a response and a paging
configuration.  It will then attempt to fetch the next
page of results based on the paging tokens present
in the response data.

    page = ResponsePager.new(response)
    page.last_page?(false)

    # sends a request to recieve the next response page
    page = page.next_page
    page.last_page?(true)

    page.next_page
    #=> raises ResponsePager::LastPageError

The ResponsePager is a Delegator for the wrapped response.
You can access all of the attributes of the response from
the page object.

    page.data
    #=> { ... }
Now translating API source configurations for pagination.

This translates all of the input/output tokens, and more_keys
into the required structure.  The result_keys are currently
being ignored.  This allows us to configure ONLY responses
that actually page.

The additional information can be extract later when we
add resource enumerations.
Corrected a few errors in the source API pagination configurations.

These will need to be back-ported to the original source files
that we vendor in this project.  Committing these changes so
we can track them.  Each time the source files are updated
we will be reminded they need to be back-ported.
Added paging metadata to API operations that can be paged.
Fixed an issue in the that caused it to miss the truncation keys.
Added API documentation to ReponsePager.
You can now disable paging response by providing an empty set of rules.
Added basic @stability yard tags to the new ResponsePager.
Renamed ResponsePager to PageableResponse.
Corrected the indentation of a few documentation examples.
Simplified the response on callback to strictly filter by status code.
Added the response paging plugin to each service.
Added a dependency on Jamespath so we can extract next tokens from S3 #list_buckets.