Add extended API for Heartbeat requests.

Allow for finer control of Heartbeat requests.  Specifically, take the
payload and padding data as arguments along with the value to be sent
as the payload length.  While this length should generally match the
size of the buffer, any valid payload length will be accepted allowing
for non-standard Heartbeat requests.  Notably, sending a payload length
that is larger than the actual size of the payload itself will tickle
the Heartbleed bug on affected hosts (for educational purposes only.)