Add unit tests for TeeInput
Make TeeInput read no more data than is allowed by the HTTP headers.

In the future, this change will be used as a building block for implementing
proper EOF simulation on rack.input. The current implementation on
UnseekableSocket is not entirely correct, as documented here:
https://groups.google.com/forum/#!msg/phusion-passenger/bfY4EQguW5o/V4YxH_Wd_qYJ
Request handler changes...
...