(PUP-927) Read files in binary mode

Previously, puppet's built-in `file` and `template` functions read file
contents in text mode. This is not a problem when using a *nix master,
because there is no difference between text and binary modes.

However, when using `puppet apply` on Windows, puppet would convert
Windows style line endings '\r\n' to '\n' with no way to not do that.

This commit switches to using `binread`. This is the same as `read` on
*nix. On Windows, it will ensure that the original line endings are
preserved.