OpenFile opens a file and returns a pointer to it, along with an error value.
If there is an error opening the file, the error value will be non-nil.
Otherwise, the error value will be nil and the pointer to the file can be used
to read or write to the file.