Refactor Notifier interface to accept DownloadEventListener interface

WebSocketSessionMan now implements DownloadEventListener and is added
to Notifier. It becomes member variable of DownloadEngine.  The event
constant for download event is defined in aria2.h so that we can add
event callback API later.
Add download event callback API and its example