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 
As above, `None` rather than `0`.

The RFC refers to this value as "payload length". Using "message length" in the variable name is a bit inconsistent.

Since `max_payload_length` is a bit long, I would suggest `max_length` or `payload_limit`.