Reformat test error messages
Add another unit test
Fix a subtle race condition with the usage of time.AfterFunc
Fix channels close ordering
Remove unnecessary named return values
Add race detector in travis