(PUP-1387) fixes wrong hash in subjectKeyIdentifier

this fixes the regression that appeared when the arguments to
ExtensionFactory where accidentally swapped.
Also added a test case to check if the subjectKeyIdentifier is present.
(maint) expand ExtensionFactory creation for clarity

The code compression in 94345ebac introduced a regression where the
issuer certificate and subject certificate were transposed, which would
cause erroneous extensions to be created. db5fb8a fixed this issue but
it's still pretty unclear why the given values are set. This commit
removes the code compression so that we specifically call out the
behavior of adding extensions to a self signed cert.
(doc) Document certificate_factory methods

Any code dealing with X509 is rather difficult to understand by default,
and methods that have no documentation don't help. This commit expands
method documentation for future generations that are brave enough to
delve into this code.
Merge branch 'pull-2237'