[Datasync] Sanitize user data in platform callbacks in datasync plugin

This commit sanitize platform callbacks in case of object
expiration(destruction). For each platform callback, additional check is added
to check if object still exists. If not callback should be ignored as application
is probably quiting frame.

For every Type that is derived from ExpiringObject<Type>,
collection of instances is created to track its lifetime.

Additionally, scope exit was moved to ${root}/common/
and changed a bit.

BUG=XWALK-2796
which data structure introduce this header? If no, please remove.