`unconditionally` argument is a boolean and should be keyword-only

Since bare boolean arguments are generally unPythonic, unconditionally as used in refresh() and unlock() should be keyword-only arguments. That feature didn't exist when this library was originally written. Changing it would be a backward incompatible change. We should consider this for the 4.0 major version bump.