Implement signed AuthnRequests

This patch implements signing of SAML requests, using the much simpler process of signing the URL instead of embedded signatures in the XML.

This patch has been tested with Microsoft ADFS, which can be set to require signed requests via the PowerShell

```
Add-PSSnapin Microsoft.Adfs.PowerShell
Set-ADFSRelyingPartyTrust -TargetName “YourNameHere" -SignedSamlRequestsRequired $true  
```

Should we make sure this exists in `initialize`, so that we can show a nicer error message than `NoMethodError on nil`?