feat(undo): WIP add undo feature, which prevents the last item in the sync queue from pushing until (a) new op pushed to queue, (b) 10s timeout, (c) window.onbeforeunload