Reduce size of PlayIO API (2.3 backport)

Backported from master to 2.3.x. Some changes from original commit because its ordering with "Ensure UTF-8 is used for reading/writing files" was is reversed in 2.3.x compared with master.

* Inline some methods into the Files API
* Always close when reading a stream
* Didn't use scala.io.Source because it doesn't really support reading
  binary data and because it looks slow, which wouldn't be great for some
  use cases, e.g. reading assets or when a user uses Files.readFile.