Store file contents as raw vectors for binary files

We define binary files as files containing at least one embedded null
character.

All files are read as raw vectors now. Binary files are kept as raw
vectors, text files as character. As a typical plugin either works on
binary files, or on text files, but not both, this is fine, we
don't need to convert between the raw and text representation.
Then I think we need

```r
text <- rawToChar(contents)
Encoding(text) <- "UTF-8"
text
```