Restore optimisation removed in r1549711
Refactor so InputStream is never opened if sendfile is used
Add lots of comments

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