Reworked async_io_errors_test to be from now on stable. In the process, discovered that when_all() was not rethrowing errors at all (!) and so fixed that. Additionally replaced all throws with BOOST_AFIO_THROW() in preparation for switching on Boost's current_exception support for older compilers.