Convert streams (readable or writable) to promises