fix for #12947

remove zk_hosts from unlock, since we already fail if we don't have the lease.
Also, adding logic into the semaphore class when it is not ephemeral to load its own previous lease (to avoid deadlocks)
Add missing import
Merge pull request #13018 from jacksontj/concurrency_control

fix for #12947