Renamed authrequest.go to match the SAML XML name.
Added a new method to generate signed requests.
Added AuthnRequest signing via xmlsec1.

 * Separated `struct` definitions into an authnrequestInterface.go file (using a C convention) to make authnrequest.go more readable.
 * Updated LoadCertificate in certificate.go to read, parse, and prepare public keys from X.509 certificates for inclusion in AuthnRequests.