(PUP-3560) CSR extensions now properly encoded

Due to a bug in the OpenSSL::X509::Extension class encoding unknown
extension types, I had to selectivley use the value either directly from
the ASN1 data, or from the value parsed by OpenSSL::X509::Extension.