SyncEngine & UI: Move QElapsedTimer to object

Using a function static is too dangerous when multiple threads are involved.