<!--- Verify first that your feature was not already discussed on GitHub -->
<!--- Complete *all* sections as described, this form is processed automatically -->

##### SUMMARY
Allow to specify a new "format" parameter in "openssl_privatekey". Today the output format is decided by a very simple heuristic which requires further commands to work properly.
I need, for example, to generate a RSA private key but in PKCS8 format. The current heuristic uses OpenSSH format for RSA keys and only uses PKCS8 for Ed25519 and similar. This makes me use a "command" with "openssl" to convert the generated key, which leads to idempotency problems and unnecessary complexity.

##### ISSUE TYPE
- Feature Idea

##### COMPONENT NAME
openssl_privatekey

##### ADDITIONAL INFORMATION
<!--- Describe how the feature would be used, why it is needed and what it would solve -->
The current heuristic should be kept unless overwritten by user.

<!--- Paste example playbooks or commands between quotes below -->
```yaml
openssl_privatekey:
  path: /etc/ssl/private/ansible.com.pem
  format: pkcs8
```
The values allowed are `pkcs1`, `raw` and `pkcs8`

<!--- HINT: You can also paste gist.github.com links for larger files -->

'1.3.6.1.5.5.7.48.1': ('OCSP', 'OCSP', 'id-pkix-OCSP'),
    '1.3.6.1.5.5.7.48.1.1': ('Basic OCSP Response', 'basicOCSPResponse'),
    '1.3.6.1.5.5.7.48.1.2': ('OCSP Nonce', 'Nonce'),
    '1.3.6.1.5.5.7.48.1.3': ('OCSP CRL ID', 'CrlID'),
    '1.3.6.1.5.5.7.48.1.4': ('Acceptable OCSP Responses', 'acceptableResponses'),
    '1.3.6.1.5.5.7.48.1.5': ('OCSP No Check', 'noCheck'),
    '1.3.6.1.5.5.7.48.1.6': ('OCSP Archive Cutoff', 'archiveCutoff'),
    '1.3.6.1.5.5.7.48.1.7': ('OCSP Service Locator', 'serviceLocator'),
    '1.3.6.1.5.5.7.48.1.8': ('Extended OCSP Status', 'extendedStatus'),
    '1.3.6.1.5.5.7.48.1.9': ('valid', ),
    '1.3.6.1.5.5.7.48.1.10': ('path', ),
    '1.3.6.1.5.5.7.48.1.11': ('Trust Root', 'trustRoot'),
    '1.3.6.1.5.5.7.48.2': ('CA Issuers', 'caIssuers'),
    '1.3.6.1.5.5.7.48.3': ('AD Time Stamping', 'ad_timestamping'),
    '1.3.6.1.5.5.7.48.4': ('ad dvcs', 'AD_DVCS'),
    '1.3.6.1.5.5.7.48.5': ('CA Repository', 'caRepository'),
    '1.3.6.1.5.5.8.1.1': ('hmac-md5', 'HMAC-MD5'),
    '1.3.6.1.5.5.8.1.2': ('hmac-sha1', 'HMAC-SHA1'),
    '1.3.6.1.6': ('SNMPv2', 'snmpv2'),
    '1.3.6.1.7': ('Mail', ),
    '1.3.6.1.7.1': ('MIME MHS', 'mime-mhs'),
    '1.3.6.1.7.1.1': ('mime-mhs-headings', 'mime-mhs-headings'),
    '1.3.6.1.7.1.1.1': ('id-hex-partial-message', 'id-hex-partial-message'),
    '1.3.6.1.7.1.1.2': ('id-hex-multipart-message', 'id-hex-multipart-message'),
    '1.3.6.1.7.1.2': ('mime-mhs-bodies', 'mime-mhs-bodies'),
    '1.3.14.3.2': ('algorithm', 'algorithm'),
    '1.3.14.3.2.3': ('md5WithRSA', 'RSA-NP-MD5'),
    '1.3.14.3.2.6': ('des-ecb', 'DES-ECB'),
    '1.3.14.3.2.7': ('des-cbc', 'DES-CBC'),
    '1.3.14.3.2.8': ('des-ofb', 'DES-OFB'),