karma: karma.ini adjustments,

helo.checks scores on specific tests now rather than counting pass/fails. Duplicates aren't scored in helo.checks any more, making this more robust.

increase karma value of successful auth

penalize SPF result=None a little less (-1 was -2)
karma: adding tests, 'remember tarpit' across connects

move global 'var db' to plugin.db

move deny_hooks from register() to karma_init(), so it gets refreshed if karma.ini is reloaded

refactored apply_tarpit out of should_we_deny (testability)

on new connect, apply tarpit value from last connection, slowing down abusers who rapidly reconnect

refactored max_concurrent and karma_penalty out of hook_connection (simpler code, easier to test)
karma: docs, tests, spit & polish

moved tarpit into karma (instead of depending on tarpit plugin)

adaptive connection delays based on score and IP/ASN history

added punish, with a higher threshold for penalty box

[penalty]hooks -> [deny]hooks
	penalty always rejects at connect
	[deny]hooks affects when a poor quality connection is rejected

moved penalties for invalid rfc5321.MailFrom/RcptTo to karma.ini (was hard coded in karma.js)

significant documentation updates

69 tests now.