fix socketpair leak in 'pony'

On smtp connection exception the socketpair used to i/o the data phase
is not freed. Whenever IMSG_SMTP_MESSAGE_ROLLBACK is signalled to
'queue', 'pony' should release the io resources related to the
socketpair. There are four such exceptions in smtp_io():
IO_{TIMEOUT,DISCONNECTED,ERROR} and SF_BADINPUT.
Initialise smtp_session oev file descriptor to -1

As soon as smtp session is closed, the associated resources
including the oev socket, are releases. If the connection is broken
early, the oev socket is never allocated so the fd is preset to 0
(not to -1). In fact, the whole smtp_session is preset to 0.
fd 0 is erroneously closed but there is no fd to close in this case.
Future assignments of fd 0 will fail users, since libc manipulates
fd 0 (stdin) behind the scenes.
Merge pull request #479 from estarling/portable

fix socketpair leak in 'pony'