Fix a bug where writableObjectMode were not respected when setting hwm

`writableObjectMode` is useful when dealing with `Duplex` streams which have different setting for readable side and writable side. `writableObjectMode` being true when `objectMode` being false means the writable role of the stream will follow object mode being true. This PR fixes hwm logic.