Fixed bug in main branch read_websocket

The bug is that read_websocket is missing to reserve the header
original websocket upgrade request, so if the queue is hit the case
(data_len + header_len > body_len), the following data corrupted by
appling the incorrect conn->data_len. I patched the code to allow large
binary transfer over 500KB (tested in OSX 10.8.3).