future work
Remake future object in services methods.

This is a part of work for supporting on_done() callbacks and supporting
streaming services.
New future in service's methods: support on_done callback.

Now you are able to receive on_done callback in cases, when service
method sends only choke (not even one chunk). Also requesting chunk
after the end of chunk's stream doesn't raise RequestError now, but call
on_done callback(). In coroutine style on_done callback is
generator.send(None), so you will receive only None instead of chunk, if
stream is over. And, for example, storage.wriet() sends only choke in
answer.
Example:
    @http
    def work(request, response):
        req_fut = request.read()
        req = yield req_fut # read request from cloud

        st_future = s.read("manifests", "test")
        test_file = yield st_future # test_file
        yet_data = yield st_future # yet_data - None, stream is over

        st_write_future = s.write("test", "test", "test", [])
        # if operation'll fail - raise ServiceError
        try:
            on_done = yield st_write_future # on_done - None
        except ServiceError as err:
            log.error(str(err))
            response.write_head(200, DEFAULT_HEADERS)
            response.write("Error")
            response.close()
        else:
            response.write_head(200, DEFAULT_HEADERS)
            response.write("Write succesfully")
            response.close()