Reduce size of PlayIO API

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.
Merge pull request #2892 from richdougherty/playio-routerio-backport

Reduce size of PlayIO API (2.3 backport)