Ensure lookups from dns_list_base always return async
Fix scoping of results in some plugins
helo: results processing, skip checks after 1st pass
helo: added match_rdns, mismatch, reject, results store

added reject=true config option
added helo_init, which refreshes config & tracks multiple invocations
split valid_tld from no_dot into it's own function
when skipping tests, provide a reason
helo: remove helo_ prefix from function names
helo: improved cfg option handling
helo: added first test
helo: tests, tests, and more tests!
helo: refactored octuplicated exception cases into

new should_skip function
helo: tidying up config settings
helo: added emit_log
helo: added forward_dns and valid_hostname

no_dot and valid_tld were folded into valid_hostname
helo: s/is_public_suffix/get_organizational_domain/
helo: updated docs with new config settings
helo: fixed an invalid logger call
helo: skip forward_dns if valid_hostname didn't pass
config: fix for .ini booleans being returned as strings

My previous boolean fix fixed the default case for when the value wasn't declared in the ini file. then it always returned a boolean. However, when a default was defined ('+sect.key'), that option wasn't matched in options.booleans array because of the +/- prefix.
results: one bug fix, one new feature, 14 new tests

Bug fix: I tracked down and fixed the cause of NaN in some of my incrementers. It happened when the incrementer was initializing the results store. Tests are added which validate behavior when initialized by add, incr, and push.

New feature: has

Tests a string value or array members for the presence of an exact string match or a pattern match.
helo: forward_dns requires valid_hostname and

added a domain match pass for forward_dns when rDNS passes and the helo hostname domain matches the rDNS domain.
helo: added usage example with results.has