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.
@chrisdickinson I was wondering the same thing myself. That is the style used throughout the file, but I still don't quite understand why.