'Like ``.call_application(application)``, except returns a
response object with ``.status``, ``.headers``, and ``.body``
attributes.
This will use ``self.ResponseClass`` to figure out the class
of the response object to return.
If ``application`` is not given, this will send the request to
``self.make_default_send_app()``'

def send(self, application=None, catch_exc_info=False):

    if (application is None):
        application = self.make_default_send_app()
    if catch_exc_info:
        (status, headers, app_iter, exc_info) = self.call_application(application, catch_exc_info=True)
        del exc_info
    else:
        (status, headers, app_iter) = self.call_application(application, catch_exc_info=False)
    return self.ResponseClass(status=status, headerlist=list(headers), app_iter=app_iter)
