Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56663
BZ56663: Improve available to also include buffered bytes in the Servlet layer, handle a case (thanks telnet) where the amount of remaining bytes could become negative (the input is still finished then of course), filter an extra write event with non blocking write IO if async completes after the first read.

git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1606136 13f79535-47bb-0310-9956-ffa450edef68