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  
```

params is mutated a few lines down