Limit GET requests by body size instead of number of ranges.
* bzrlib/transport/http/response.py: Fix some error messages. (RangeFile.read_range_definition): Keep the range headers in the _headers attribute for easier debugging (especially for remote debugging).
* bzrlib/transport/http/_pycurl.py: (PyCurlTransport): Replace _max_readv_combine by _get_max_size which is more approriate to the problem.
* bzrlib/transport/http/__init__.py: (HttpTransportBase): Add a _get_max_size class attribute corresponding to the max_size _coalesced_offets max_size parameter. (HttpTransportBase._coalesce_readv): Limit the size of the get requests if _get_max_size is greater than 0 while still respecting the maximum number of ranges in a request.
* bzrlib/tests/test_http.py: (TestRangeRequestServer.test_readv_get_max_size): Test the _get_max_size parameter.
* bzrlib/transport/__init__.py: (Transport._coalesce_offsets): Add a max_size parameter limiting the size of the coalesced offsets.
* bzrlib/tests/test_transport.py: (TestCoalesceOffsets.check): Add the max_size parameter. (TestCoalesceOffsets.test_coalesce_max_size, TestCoalesceOffsets.test_coalesce_no_max_size): Test the max_size parameter.