Win: Implement read_timeout_forced and make read functions behave similar to Posix

The previous read_timeout() implementation was behaving in a same way as
read_timeout_forced() on Posix - it was waiting either for buffer or
timeout to happen. Now the read_timeout() returns the buffer and doesn't
wait for timeout to happen and read_timeout_forced() works as expected -
return either full buffer or partial buffer(or empty) and timeouts.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
Windows: Clarify the comment for the operation duration in read_timeout()

On Windows XP the operation takes in 99% cases less then the timeout
specified, on Windows 7 it's always > timeout - it behaves on W7 in a same
way as it's seen on Posix platforms. D'oh!

Signed-off-by: Petr Štetiar <ynezz@true.cz>