Enable support for OpenID providers that offer the XRDS file directly

While I was trying to use the included OpenID feature (although not documented) with Steam, I encountered a problem. It seems you're currently checking the response header for X-XRDS-Location to grab the location of the XRDS file of OpenID. But Steam does not specify this header since the URL is the XRDS file already (http://steamcommunity.com/openid, http://steamcommunity.com/dev).

I have changed some lines in the `OpenIdProvider` class to support these kind of OpenID providers (I don't know if there are more). What this code basically does, is that if it cannot find the X-XRDS-Location header, it checks if the file has a Content-Type of `application/xrds+xml` and caches the OpenID URL directly. So this also prevents downloading the same file twice.