Add missing forward declarations needed for Windows.
Remove use of std::min.
Ignore ERROR_MORE_DATA as a non-fatal error when returned by
GetOverlappedResult for a synchronous read.
Add the ability to use asio without boost, when compiling with Microsoft
Visual Studio 2012.