More descriptive error messages

I get the feeling maybe this is not how websocket close codes were
intended to be used but there is literally no other mechanism for client
side errors so~