Wsdl location fixes

These changes will allow the wsdl to be requested from multiple domains. The wsdl etree is cached. If the domain changes, the location is simply x-pathed out and replaced. The string form of the wsdl is still cached and will be used if the previous request had the same domain as the current one.

The HTTP_X_FORWARDED_PROTO header will also now be used in the wsdl location if it is passed.

Please let me know if these changes would completely break something. Though because of the way it caches the wsdl etree/string, sites that do not use multiple domains shouldn't be affected by these changes at all.