Don't use multiple inheritance for http smart medium since we
can't pass parameters to object.__init__ (and bzr used that trick
prior to python-2.6 to implement it).
* bzrlib/tests/test_http.py:
(TestHTTPConnections.test_get_smart_medium): Deleted.
* bzrlib/transport/http/__init__.py:
(HttpTransportBase): Get rid of multiple inheritance from
medium.SmartClientMedium.
(HttpTransportBase.get_smart_medium): Build the medium on demand
but cache it to avoid probing for smart server repeatedly.
(SmartClientHTTPMedium): New class. Transfer get_request,
should_probe and send_http_smart_request from
HttpTransportBase. Keep a weak reference on the http transport to
avoid circular references.
(SmartClientHTTPMedium.send_http_smart_request): Handle the weak
reference.
* bzrlib/transport/remote.py:
(RemoteTransport): Doesn't inherit from SmartClientMedium anymore.
* bzrlib/transport/__init__.py:
(Transport.__init__): Don't pass parameters to object.__init__.