refactor(workqueue): move workqueue into its own module
feat(autosave): handle autosave with versions

SD-657 SD-660
fix(autosave): make autosave trigger only on content changes

SD-660
fix(autosave): make autosave work for 2nd+ time

it should use post for first time and patch after

SD-660
fix(autosave): lock only if not locked already

locking an item kills autosave. so we have to make sure to lock
only for the first time. also autosave must use post and patch later.

SD-660
test(autosave): add test expectations for autosave
chore(npm): update dependencies
fix(etag): send if-match only if there is an etag
test(authoring): mock desks in authoring tests