Return errors from size instead of raising Fs_error

Without this, if the path doesn't exist then clients just get e.g.

    Fatal error: exception Fs.Make(B)(M).Fs_error(_)

[ note: I'm assuming the change log gets updated from the Git log at release time, so not updating it manually ]