karma: initial authoring
moved concurrency tracking into separate redis key

Steve pointed out that a connection that failed to complete properly (due to crashed plugin, or whatever) would cause the concurrent tracking to be miscounted and may cause problems.

My solution: expire them after 4 minutes
remove karma from TODO list
added deny hook, made note an object

to track plugin denials
added award/penalty section in config
karma: added awards from other plugins

based on inspecting their saved notes
edited big functions into paragraph sized ones

added recipient limits to config
added expire_days to config (was hard coded)
karma config: added relay award
karma: awards for notes with defined values

ie, match connection.notes.spamassassin.flag===Yes
karma: added neg karma for SPF deny/fail
karma: check mail_from for null sender

before attempting to extract the host
karma: trim 'notes' prefix off test names

removes repetitive and meaningless data from headers
karma.ini: commented out most spammy tlds

these will vary, depending on the site
karma: added Redis reconnection logic

(does a ping at connect/disconnect, and reconnects if needed)
karma: fixed misspelled threshold
karma: whitespace changes
karma: note values can be pattern matched
karma: return a 4XX error on max recipients

was 5XX
karma: added timer to concurrent limit disconnect
karma: shed some camelCase