Add record parser, only print memory

Prepare for Cloudflare Challenge. Introduce record parser to reduce
junk.
Do not keep sending heartbeats if invulnerable
Do not print memory in read_hb_response

Not useful if I just want to check the memory without printing.
Fix get_record() if more data was previously fed
Fix setting timeout error
Fix intermixed heartbeat records
Collapse all zeroes if last line in hexdump
Merge branch 'record-rework'

Previously, the returned bytes do not consist solely of memory. This has
now been changed to match only memory. To do this more reliably, read
0xffed instead of 0xffff bytes (see comments in code for why).

Misc fixes:

 - Stop sending heartbeats on timeout.
 - Allow to collapse all-zeroes line in hexdump if the length is not 16.
Add server implementation using pacemaker

This is less useful than pacemaker as it needs to establish a new
connection all the time, but added because it is possible.
pacemaker: catch socket errors for python2
README: update with heartbleed.py
Added .gitignore
heartbleed(server): support SMTP
Support multiple handshake messages in single record
Python 2.7.3 fixes

A bytearray object cannot be passed to struct.unpack on older Python
versions. This converts all responses to an immutable bytes object and
introduces some related fixes for Python 2 which has different thoughts
on bytes vs strings.
heartbleed(server): Add FTP support
heartbleed(server): IMAP support
pacemaker: RFC2060 conformance

IMAPrev1 must be advertised, a space plus text must exist after first
response.
heartbleed(server): POP3 support

Tested with dovecot 2.2.11.
README update for heartbleed.py(server)