A working implementation of asyncio version.

 - It works with all features offered by the original, including reload.

 - It would be better to use high-level StreamReader/StreamWriter
   interfaces via asyncio.open_connection() for the IRC server, though.
Minor fix related to termination.
Use high-level stream APIs and implemented reconnection.
Clean up argument parsing and add options for SSL.
Stabilize termination process.

 - Recent versions of ZMQ library implicitly spawn internal IO threads
   when creating context objects (the number of threads is
   configurable).  Those threads should be destroyed explicitly,
   otherwise the termination process will leave "zombie" threads.

 - Removed time-out checks in safeexec().  It is not much useful since
   we do asynchronous IO now, and signal-based hacking is not portable.
Minor fix and comments.