(PE-4372) Added utilities for alt dns names

* Able to add extensions to a CSR
* Added utilities to create an Alt. DNS names extensions

This PR is for review only so people can start taking a look at it while I write some tests.
If we no longer have a use case for signing a certificate request given the actual CSR object, then I would be in favor of deleting this.  If we do have a use case, or decide to leave this in, I think this should be implemented as just pulling out all the fields from the CSR and then just calling `signCertificate`