Explicitly check if an object is a class is pydispatch.

* This is to fix a disagreement in between CPython and PyPy.
* https://gist.github.com/4220533
PEP8 on pydispatch/robustapply.py
doc: Response.replace() cannot take meta argument

>>> response.replace(meta={'foo':1})
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/srv/scrapy/scrapy-fork/scrapy/scrapy/http/response/text.py", line 45, in replace
    return Response.replace(self, *args, **kwargs)
  File "/srv/scrapy/scrapy-fork/scrapy/scrapy/http/response/__init__.py", line 77, in replace
    return cls(*args, **kwargs)
  File "/srv/scrapy/scrapy-fork/scrapy/scrapy/http/response/text.py", line 22, in __init__
    super(TextResponse, self).__init__(*args, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'meta'
doc: remove trailing spaces
Use twisted.web.client.Agent for download requests (use of HTTP/1.1)

Adds http11.HttpDownloadHandler in scrapy.core.downloader.handlers
Renamed downloader to Http11DownloadHandler and some refactoring

Only for HTTP, not HTTPS
Test on expected body length instead of request method (HEAD case)
Restore handling of HTTPS
http11 cleanup
add http connection pool and custom ssl context factory
enable persistent connections
move ssl context factory to its own module and implement a non-ssl version that warns about pyopenssl support
remove duplicate context factory handling for non-ssl support in http1.0
close pool connections before finishing tests
empty bodies does not require a body producer
adapt for singletons removals
cleanup http connection pool on engine stop
agents requires an instance of contextFactory
raise on unrecognized format
Add FAQ entry referencing Request.meta usage
added test for bench command