handle packet counts properly

Code in SocketHandler::send_read_buffer handles packet sizes. Previously
there was code doing the same in UtpHandler::do_read and code in
SocketHandler::setopts trying to use the read_count queue to cleverly
decide how much data to send to a waiting receiver, but it wasnt handling
packet sizes at all. Now only send_read_buffer handles packet sizes.