add Authentication-Results header (RFC 5451)
Auth-Res: added SPF results
auth: added auth method to A-R header
lookup_rdns: added iprev to Auth-Results header
connection: store auth results in transaction

when a transaction is available. Else, default to connection
move old Auth-Results to Original-Auth-Results
spf: moved auth_results processing out of switch

so that it's always added to auth_results
previously, when SPF failed, it wasn't added.
When combined with a delay_deny plugin, the connection would ultimately pass without SPF results saved
connection: made code more linear

make it easier to read and grok
import Steve's p0f plugin
my first whack at p0f

renamed p0f -> connect.p0f  (as other plugins do)
whitespace/indention cleanups
added config option for adding the X-Haraka-p0f header (enable/disable/rename)
refactored several methods to remove unnecessary indentions
changed passing of 'this' in log* methods to (var plugin = this) and passing plugin, so log entries have the correct plugin name (no, I don't know why that fixes it)
consolidated 3 instances of repetition into format_results function
added a couple function names to anonymous functions (useful debug info)
p0f: added docs
TODO: added plugin renames
TODO: added rename attachment -> data.attachment
TODO: added rename toobusy -> connect.toobusy
headers: fixed Date header bug

I was calculating the seconds myself, and didn't notice that JS returns milliseconds by default
this caused the "Too old" and "Too future" date validation to be much too strict.
Merge pull request #412 from msimerson/p0f-smf

P0f smf
Merge pull request #413 from msimerson/headers

headers: fixed Date header bug
Merge pull request #410 from smfreegard/master

If host is allowed by acl, don't deny the recipient because the domain isn't in the allow list
Merge pull request #409 from msimerson/authentication-results-rfc5451

add Authentication-Results header (RFC 5451)
Merge pull request #411 from msimerson/todo

Todo