The asiolink library is intended to provide an abstraction layer between
BIND10 modules and the socket I/O subsystem we are using (currently, the
headers-only version of ASIO, release 1.43).  This has several benefits,
including:

  - Simple interface

  - Back-end flexibility:  It would be easy to switch from using
    ASIO to boost::asio, and even relatively straightforward to switch
    to any other asynchronous I/O system.

  - Cleaner compilation:  The ASIO headers include code which can
    generate warnings in some compilers due to unused parameters and
    such.  Including ASIO header files throughout the BIND 10 tree would
    require us to relax the strictness of our error checking.  Including
    them in only one place allows us to relax strictness here, while
    leaving it in place elsewhere.

Some of the classes defined here--for example, IOSocket, IOEndpoint,
and IOAddress--are to be used by BIND 10 modules as wrappers around
ASIO-specific classes.

