Add sample cleanup_sockets config file

Add a sample cleanup_sockets config file containing the standard postfix
cleanup socket path.  Postfix socket redundancy is now tested to work!
Revert "Run hook_reset_transaction after all cxns"

This reverts commit 61901d0ec5bebc1607c817c09e174a0ad9569ab0.

I've found a better way to do this in light of Ask's suggestion and some
further testing
Run disconnect/reset_txn hooks more consistently

This patch makes sure that hook_disconnect and hook_reset_transaction
plugins are run at the end of all transactions, including those where
the remote end hung up unexpectedly or we timed out the connection.

My previous changes were a bit more complex than they had to be, had no
effect on apache or async, and further testing indicated that they did
not affect timed out connections.  This patch is tested to work for both
hang-ups and timeouts from prefork, and should work for the rest of the
server modes -- EXCEPT that I couldn't figure out where to modify
timeout behavior for the apache mode.  Does anyone have any ideas on that
one?
Spool body when $transaction->body_fh() is called

Qpsmtpd::Transaction::body_filename() calls $self->body_spool() if the
message body has not already been spool to disk.  This adds the same
check to Qpsmtpd::Transaction::body_fh()
Pass original message data to spamd

plugins/spamassassin examines the output of Mail::Header::as_string(),
from the header object generated by Qpsmtpd, followed by message data
accessed by Qpsmtpd::Transaction::body_getline().  If the header object
has been modified by another plugin, spamassassin may miss useful header
information, and bayes will not have completely accurate data to train
on.  Instead, we pass the unmodified original message content to SA
using Qpsmtp::Transaction::body_fh()
Allow hook_deny/ok to override return codes

This patch allows a hook_ok or hook_deny to modify the return code given
by $prev_hook.  returning DECLINED or anything other than a valid return
codd results in leaving the previous hook's return code unmodified.
Add dup_body_fh to return a dup'd body FH

It wasn't suitable to dup the body FH returned by plain old
body_fh(), so here's a separate function to return that.
Minor style updates to perltidy

These are a couple of stylistic changes to .perltidyrc that were fairly well received on the QP list.
Merge branch 'master' of github.com:jaredj/qpsmtpd