Enforce user defined maximum payload limit for issue #28

- Limit can be set as WebSocketCommonProtocol.max_msglen
  attribute
- read_frame()/read_data_frame()/read_message() now
  accept an optional parameter maxsize
- New exception PayloadTooLarge

for issue #28 
`PayloadTooLarge` would be shorter and clear enough.

I'd move it above `WebSocketProtocolError` to keep the public exceptions together and maintain alphabetical ordering.