Infer callback uri if not provided

Like the title says.  Right now if the client options specify redirect_uri: nil, authorization can succeed, however when exchanging the auth code for a token, the remote token endpoint will fail because the redirect uri isn't provided.  This uses the same guess for callback url as in the omniauth-oauth2 gem.