Add AuthnRequest signing

This should resolve the merge conflicts created by the other PR.  Let me know if it's still causing problems!
This doesn't work like you think it does. http://play.golang.org/p/Sr8GRN4sgU

Query returns a new Values type, not a pointer to the existing one.

you need to so this to accomplish your goal.
```go
q := u.Query()
q.Add("SAMLRequest", base64EncodedUTF8SamlRequest)

u.RawQuery = q.Encode()
return u.String(), nil
```