[SessionManager] Get session ID without blocking.

Previos ways set GLib's timer on the GLib's event thread to race
with timerCb(). However, this approach needs a context switch and
makes the caller thread blocks.

This patch sets the timer on the caller's thread with a lock in
order to improve performance.
>  timerId = INVALID_EVENT_ID;
>  Utils::removeGSourceIfNeeded(timerId);

Utils::removeGSourceIfNeeded() seems do nothing because the argument is always INVALID_EVENT_ID.
Is it correct?

Utils.cc:
<pre>
bool Utils::removeGSourceIfNeeded(const guint &tag)
{
        if (tag == INVALID_EVENT_ID)
                return true;
</pre>