Added private key decryption to JDK SSL server context.

**Motivation:**

Currently it is *not possible* to load an *encrypted private key* when
creating a JDK based SSL server context, see #2718.

**Modifications:**

Added `io.netty.handler.ssl.util.KeySpecGenerator` which creates which
handles key spec generation for (encrypted) private keys.

Modified `io.netty.handler.ssl.JdkSslServerContext` so it uses
KeySpecGenerator.

Added tests for creating a SSL server context based on a (encrypted)
private key.

**Result:**

It is now possible to create a JDK based SSL server context with an
encrypted (password protected) private key.
It was part of {{JSSC}} but then I extracted a class in order to separate concerns since key spec generation doesn't require the class context of {{JSSC}}. However, {{JSSC}} is the only class using it, so I might as well merge it back into it, for the sake of simplicity.