merge revision(s) 40887,40888,40894,40896: [Backport #8431]

	* win32/win32.c (setup_overlapped, finish_overlapped): extract from
	  rb_w32_read() and rb_w32_write().

	* win32/win32.c (setup_overlapped): check the error code in addition
	  to the result of SetFilePointer() to determine if an error occurred,
	  because INVALID_SET_FILE_POINTER is a valid value.
	  [ruby-core:55098] [Bug #8431]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@41082 b2dd03c8-39d4-4d8f-98ff-823fe69b080e