fs: fix fs.readFileSync fd leak when get RangeError

The `new Buffer(size)` will throw RangeError when size grater than 1GB. Need close the fd here.
Here, I just keep consistent with fs.fstatSync(fd).size call.

```
var threw = true;
   try {
     size = fs.fstatSync(fd).size;
     threw = false;
   } finally {
     if (threw) fs.closeSync(fd);
   }
```