Lock desklets

This adds the ability to lock desklets on the desktop such that their position can't be changed through DND. Right now the "locked" state is identical for all active desklets and stored in gsettings under the key `desklets-locked' which defaults to false. Personally, I think it's sensible to have this affect all desklets. It may be argued, however, that a per-desklet setting would be more useful. In that case the locked state would need to be stored alongside the desklets uuid in the enabled-desklets field. Alternatively, the value could be stored in the desklet's metadata.json file, but then we'd have to rely on desklet authors not to tamper with the key themselves.