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/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__.