Allow signer to override subject data in CSR.

Currently, the CFSSL signing API uses whatever subject data is in the CSR. This pull request proposes adding a subject data parameter to the Signer type's Sign method, which contains the actual subject information that should be used for the certificate. In effect, supplying a value for subject data only uses the public key information from the CSR and uses the supplied subject data for the certificate.
I am a little bit concerned over the repeated overloading of "certificate request". Sign a certificate request with a binary certificate request plus a csr.CertificateRequest as Subject seems quite confusing. I think we should avoid use CertificateRequest here if possible, and create a new Subject type in csr maybe?