Add SetReadLimit and more.

- Add SetReadLimit method to connection. The method specifies the
  maximum message size received from the peer.
- Add HandshakeError type so that application can determine correct
  action to take on error return from Upgrade.
- Mention application's responsiblity to check origin in Upgrade
  comment.
- Update chat example.
- Fix bugs.