Socket basic error handling done.

Blocking udp/tcp socket sink will throw exception on any writing error occurred. This behavior is normal, cause upcoming exception will be caught by the upper-level handler, and the record itself will be written to the backlog.
Some comments has been added.
TCP sink error handling has been implemented.
Explicit is better than implicit.
Udp sink has been refactored.
UDP asio backend has been refactored again.

Template connect function has been implemented to ease socket connecting.
Socket sink now templatized by protocol type.
Module decomposition done.