Changed API of 'locate' methods.

In earlier versions AsynCoro class had 'locate_coro', 'locate_channel'
etc. methods. These methods have now been moved as static methods to
appropriate class; e.g., 'locate_coro' is now 'Coro.locate'.

Peer information is now managed within separate class. This maintains
information on whether a connection is to be used for streaming,
authentication key etc.
Fixed HUP event processing.

Poller may indicate HUP event along with READ, so checking for
HUP first and ignoring READ may result in unread data. Now READ,
WRITE end HUP vents are assumed to be exclusive and processed
in that order. HUP event processing now calls file descriptor's
'eof' function that can wakeup any waiting read coro appropriately.

Added 'wait' method to Coro that can be called (with 'yield') from
another coroutine. This is similar to 'value' that can only be
called from main thread. While coroutine is not finished, either
'value' or 'wait' can be called, but not both.