Returned `Try<T>` from `protobuf::read(path)` rather than `Result<T>`.
Returned `Try<T>` from `protobuf::read(path)` rather than `Result<T>`.

The path version of `protobuf::read` used to return `Result<T>` and
returned `None` only when the file is empty (`ignorePartial` is always
`false`). The `None` return represents EOF for the "streaming" version
of `protobuf::read` that takes an FD, but for the path version an empty
file when we expected to read `T` is simply an error. Thus, we map the
`None` return to an `Error` for the path version and return a `Try<T>`.

Review: https://reviews.apache.org/r/65021

chhsia0/mesos,andschwa/mesos,Gilbert88/mesos,reneploetz/mesos,asamerh4/mesos,Gilbert88/mesos,jpeach/mesos,gsantovena/mesos,gsantovena/mesos,Gilbert88/mesos,kaysoky/mesos,dforsyth/mesos,asamerh4/mesos,asamerh4/mesos,Gilbert88/mesos,andschwa/mesos,jpeach/mesos,chhsia0/mesos,kaysoky/mesos,chhsia0/mesos,abudnik/mesos,asamerh4/mesos,andschwa/mesos,gsantovena/mesos,jpeach/mesos,abudnik/mesos,reneploetz/mesos,kaysoky/mesos,abudnik/mesos,gsantovena/mesos,chhsia0/mesos,andschwa/mesos,chhsia0/mesos,Gilbert88/mesos,dforsyth/mesos,asamerh4/mesos,abudnik/mesos,dforsyth/mesos,kaysoky/mesos,reneploetz/mesos,reneploetz/mesos,gsantovena/mesos,dforsyth/mesos,abudnik/mesos,kaysoky/mesos,dforsyth/mesos,reneploetz/mesos,Gilbert88/mesos,dforsyth/mesos,gsantovena/mesos,asamerh4/mesos,abudnik/mesos,kaysoky/mesos,asamerh4/mesos,andschwa/mesos,jpeach/mesos,kaysoky/mesos,reneploetz/mesos,jpeach/mesos,jpeach/mesos,jpeach/mesos,andschwa/mesos,chhsia0/mesos,Gilbert88/mesos,chhsia0/mesos,andschwa/mesos,reneploetz/mesos,dforsyth/mesos,gsantovena/mesos,abudnik/mesos