Merge pull request #5 from voryx/master

Added subprotocol header.
Merge pull request #6 from voryx/master

fixed typo in InvalidArgumentException name
Enforce sub-protocol checks. fixes #4

Fail the connection as per 4.1 of the spec if the server responds with a protocol not asked for by the client.

Also failing if the server does not respond with a protocol that was asked for. This is not defined by the spec but is valid.

This is an opinionated implementation.