Work in Progress

My understanding here is that, it's possible that `_write` is called before last write is finished. Although it's possible that `libuv` can handle this (which I'm not sure yet), the offset can be wrong because it's "+1"ed in the callback passed in `fs.write`. That's why `self.writing` is checked here. Putting a `_write` in nextTick means to "come back and check again".

Although, `node.js` implementation doesn't have this, which kind of confuses me....