ensure only one async_read pending when polling

when polling during the renderloop async_reads were stacking (one per
frame!) up to wait  for the same input byte.  about 10-12 seconds of
this mega-leak was enough for the system to complain with an eventual
10055 (buffers full).  a flag is used per session (thread-local) to
ensure this no longer happens.  a new reader job is no longer posted
until the previous reader job completed.  the session's run method
should not have this problem but just to be safe it used the flag also.
along the way I also made all the names of io_service's unique as part
of the check to make sure each thread (including server connection
slaves) has a unique io_service object (otherwise jobs are shared across
threads and that would be crossing the streams and bad and all that
stuff)