Use json object instead of QSet for sets
Summary:
This is a workaround for a crash that is an upstream Qt bug. Also JS object is more performant in checking whether something exists as an element in the set, as QSet is converted to a JS array when passed to QML.
Type: fix
Upstream: https://bugreports.qt.io/browse/QTBUG-131961
Test Plan: Verify pinning and unpinning events still work. Verify timeline gaps still work.
Reviewers: O1 the Kazv Project
Differential Revision: https://iron.lily-is.land/D208