Use rack.input's read or string when appropriate.

The rack spec support's read instead of string, causing errors with 
application servers like Phusion Passenger and NGINX.

References:  
*  http://rack.rubyforge.org/doc/SPEC.html
*  https://groups.google.com/forum/?fromgroups=#!topic/phusion-passenger/EYbAUYoh5qE
*  https://github.com/apotonick/roar-rails/issues/18