connection: check for transaction before attempts to access objects in it

so Haraka doesn't crash
Merge pull request #549 from msimerson/connection

connection: check for transaction before attempts to access objects in i...
smtp_proxy: bug fix, defines an undefined variable
Merge pull request #550 from msimerson/smtpproxy

smtp_proxy: bug fix, defines an undefined variable
start: use try/catch to avoid startup crashes when (sometimes optional) dependencies are missing
start: added redis to optionalDependencies
data.headers: move global addrparser to plugin.addrparser so tests set it
store global geoip at plugin.geoip (better testability)
net_utils: move stun from scoped var to net_utils.stun (testability)
net_utils: stun, handle STUN failures (bound to happen)
net_utils: stun, handle STUN failures (bound to happen)
Merge branch 'startup' of github.com:msimerson/Haraka into startup

Conflicts:
	net_utils.js
	package.json
	plugins/connect.geoip.js