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(_)
Merge pull request #33 from talex5/size-return-error

Return errors from size instead of raising Fs_error