windows: limit hid_read() return value to buffer length

hid_read() and hid_read_timeout() now return the number of bytes copied,
instead of the number of bytes returned by GetOverlappedResult() (which is the
maximum report size for the device). This limits the return value to the
requested length (buffer size), matching the behavior on other platforms.