(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.
This style is cute but I would get rid of it.  Last time I checked (pre-Java 7) this actually creates a new subclass of `HashMap` that has a `static { ... }` block which will insert those elements in the constructor when you `new` it up.  Not sure how costly that actually is, but it's easily avoidable, so I would just insert those into a regular `HashMap` and then return it, or even just make this a constant field rather than a method.