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 
I would like to see a test case for fragmentation where individual frames are below the threshold but the whole message is above the threshold.