Include EventLog by default.
Added arithmetic operator overloads for signals on rhs.
Changed observer lifetime management. Observers no longer have to be detached explicitly all the time.
Instead, they remain alive under two conditions:
(1) The Observer handle has not been destroyed yet.
(2) The subject has not been destroyed yet. ObserverNode only hold a weak_ptr to the subject, so they no longer prevent it from being destroyed.
Added ObjectExample.