Improved handling for multipart messages where length cannot be known in advance

Introduces receive_more and async_receive_more methods to socket, which supply a boolean flag indicating whether more message parts remain