<!--- 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 -->

'2.5.4.37': ('cACertificate', ),
    '2.5.4.38': ('authorityRevocationList', ),
    '2.5.4.39': ('certificateRevocationList', ),
    '2.5.4.40': ('crossCertificatePair', ),
    '2.5.4.41': ('name', 'name'),
    '2.5.4.42': ('givenName', 'GN'),
    '2.5.4.43': ('initials', 'initials'),
    '2.5.4.44': ('generationQualifier', ),
    '2.5.4.45': ('x500UniqueIdentifier', ),
    '2.5.4.46': ('dnQualifier', 'dnQualifier'),
    '2.5.4.47': ('enhancedSearchGuide', ),
    '2.5.4.48': ('protocolInformation', ),
    '2.5.4.49': ('distinguishedName', ),
    '2.5.4.50': ('uniqueMember', ),
    '2.5.4.51': ('houseIdentifier', ),
    '2.5.4.52': ('supportedAlgorithms', ),
    '2.5.4.53': ('deltaRevocationList', ),
    '2.5.4.54': ('dmdName', ),
    '2.5.4.65': ('pseudonym', ),
    '2.5.4.72': ('role', 'role'),
    '2.5.4.97': ('organizationIdentifier', ),
    '2.5.4.98': ('countryCode3c', 'c3'),
    '2.5.4.99': ('countryCode3n', 'n3'),
    '2.5.4.100': ('dnsName', ),
    '2.5.8': ('directory services - algorithms', 'X500algorithms'),
    '2.5.8.1.1': ('rsa', 'RSA'),
    '2.5.8.3.100': ('mdc2WithRSA', 'RSA-MDC2'),
    '2.5.8.3.101': ('mdc2', 'MDC2'),
    '2.5.29': ('id-ce', ),
    '2.5.29.9': ('X509v3 Subject Directory Attributes', 'subjectDirectoryAttributes'),