Owner of callback object keep track of callback id,
this id is used in RemoveIdle();
The current Impl::OnIdle() will fire callbacks, if it's recurring callback object,
assigned a new id without telling the owner
Therefore when the owner needs to RemoveIdle() the owner gives out-of-dated id.
Changing the code to reuse callback id in recurring callback case to be consistent with the owner.
Change-Id: I9e891f271825dde1228be3298a85110059e4bceb