karma: added disabled awards for geoip and p0f

as examples for how to use them
karma: added DSL for karma awards, see karma.ini

so .ini config can have things like, "if length gt 2" or "if equals 5" or "if match yes"

use exports syntax and avoid having to pass plugin refs around
added hook_rcpt_ok, so karma get called after another RCPT plugin return OK (makes the rcpt limits work better)
karma: added ASN support
karam: correctly calulate penalty days (was off by

a thousand (Date.now() is milliseconds, not seconds)
karma: find notes of plugins with . in name
karma: added asn/neighbor awards (off by default)
karma: use new note API, added hook_unrecognized_command
karma: update to use ResultStore
karma: added support for finding plugin 'results'
karma: doc improvements, configurable asn award
karma: fix typos

s/awards/award/
s/init/incr/
karma: added ability to define at which point(s) in

the connection to issue the rejection
tarpit improved, penalty bonus removed, catches denials

improved tarpit (none for good senders, escalating for poor senders, with max)
intercepts plugin denials and scores them
removed penalty box bonus
support results award location with a transaction prefix
karma: improve clarity of comment
karma: added matching of array elements for awards

also, don't "catch" denials from queue plugin(s)
karma.ini: added +10 karma for whitelisting
karma: store concurrency keys in hash

then, instead of setting expire on each key, just delete the entire hash every X minutes (smaller keys names, fewer DB operations, no issues where a key that should have expired didn't)

prefix ASN keys with 'as'

added function get_asn_key (reduce code duplication)
karma: when intercepting deny, pass through softerrors

as they're the result of plugin temperrors