Follow-up for "Add mutation to lock/unlock project paths"
Follow-up for !66186 (merged)
Problem
GraphQL mutation introduced a duplication of lock/unlock logic.
Proposal
Refactor PathLocks::LockService and EE::Lfs::LockFileService classes (and their UnlockService counterparts). We should remove a circular dependency (when PathLocks::LockService calls EE::Lfs::LockFileService and it calls PathLocks::LockService again under some conditions).
Ideally, we should have a service class that takes care of the order of PathLock and LfsLock calls. That will remove the duplication of logic.