asn: note BGP url for "more info"
Fix parsing of URIs that have been URL encoded
Merge pull request #698 from smfreegard/fix_uri_parser

Fix parsing of URIs that have been URL encoded
Add skip for %40 (@) in schemeless URI regexp

Prevents URI parser from incorrectly parsing:

?email=foo%40hotmail.com

as 40hotmail.com
Merge pull request #678 from msimerson/asn

asn: note BGP url for "more info"
configfile: fixed inverted logic for config watch

If no options passed, defaults to not watching. The intention for this was to
provide a way to disable watching explicitely. This restores 'watching on by
default' behavior with the ability to disable it selectively.
change ASN lookup to Google Public IPs

which is expected be quite stable
Merge pull request #709 from msimerson/asn-test

change ASN lookup to Google Public IPs
Merge pull request #707 from msimerson/config

configfile: fix inverted logic for config watch
moved config loads into into register w/callbacks

enable 'use strict'
moved skip_list & skip_list_exclude from globals into plugin object
load_excludes & load_clamd_ini are loaded in register with callbacks
clamd: test updates due to reload changes
add additional clamd tests
replace some indention with earlier loop exiting
clamav: revert karma.ini changes

instead, added clamd to the "allow reject" list in karma plugin
early_talker: add tests

refactor a little for testability and simplicity
auth_base, spf, jslink fixups
auth_base: 31 new tests

$ ./run_tests tests/plugins/auth/auth_base.js
Running tests:  [ 'tests/plugins/auth/auth_base.js' ]

auth_base.js
✔ hook_capabilities - no TLS, no auth
✔ hook_capabilities - with TLS, auth is offered
✔ get_plain_passwd - get_plain_passwd, no result
✔ get_plain_passwd - get_plain_passwd, test user
✔ check_plain_passwd - valid password
✔ check_plain_passwd - wrong password
✔ check_plain_passwd - null password
✔ select_auth_method - no auth methods yield no result
✔ select_auth_method - invalid AUTH method, no result
✔ select_auth_method - valid AUTH method, valid attempt
✔ auth_plain - params type=string returns OK
✔ auth_plain - params type=empty array, returns OK
✔ auth_plain - params type=array, successful auth
✔ check_user - bad auth
✔ check_user - good auth
✔ hook_unrecognized_command - foo
✔ hexi - hexi
✔ base64 - base64
✔ base64 - unbase64

OK: 32 assertions (1116ms)
a few more tests for hook_unrecognized_command
moved base64 methods from auth_base to utils

and updated smtp_client to use from utils
updated auth_base tests with new base64 location