Async paging support, Refactor of Response.meta

Added async paging support.  This works best with the tornado
gen.coroutine decorator as such:

    @tornado.gen.coroutine
    def do_request():
        ss = syndicate.Service(uri='http://localhost:8008/', urn='/api/v1/',
                               async=True)
        for x in ss.get_pager('thing'):
            print("Do stuff:", yield x)

Note that if you naively expand the iterator from get_pager you're going
to have a bad time.  You can however collect clumps of pages in advance
by manually forwarding the iterator like such:

    @tornado.gen.coroutine
    def do_request():
        ss = syndicate.Service(uri='http://localhost:8008/', urn='/api/v1/',
                               async=True)
        pager = ss.get_pager('thing')
        clump = True
        while clump:
            clump = [pager.next() for i in range(300)]
            for x in clump:
                print("Do Stuff", (yield x))

In either case the main benefit is low latency processing of large
resources.  The small page size for each request lets you work on data
quickly and because it's all based on Future objects your work is sliced
up into little working sets that prevent starving the rest of your
application.

If none of this makes sense you should try some of this some ice cold
asyncio koolaid guido made: https://www.youtube.com/watch?v=1coLC-MUCJc

--

Decided Response.meta should just be a dict and the contents should
roughly conform to the responses I see from tastypie.  Other API vendors
will simply have to conform to this interface in so far as is needed
to implement paging, counts, etc.