Fix incorrect use of public_key:private_key/0 type

public_key:private_key/0 was referenced but undefined, and lib/ssl had a
local definition of private_key/0.

To fix that, make the following changes:
 * add public_key:private_key/0 type
 * document public_key/0 and private_key/0
 * fix incorrect definitions and references
Consistently format public_key(3)

When documenting public_key/0 and private_key/0, I noticed the
inconsistent state of formatting in public_key(3)'s Data Types section.
This should be fixed for consistency and readability.
Fix incorrect type reference (inet:ipaddress() -> inet:ip_address())