gracefully handle client disconnects; spruce up event listeners and overall greatness here and there (fixes #82)