Repush to 2.1.1 with compatibility and bug fixes

1. Changed all that we discussed in previous (closed) pull request.
2. Bug fixes
3. Changed $LOCK_UNIQUE_ID from 'daemon_lock' to 'pid', so File locks would result in filenames like this: /some/path/DaemonName.pid, which is more unix-style compliant. In other lock providers this change doesn't make sense.

The only backward incompatible change in this update is that Core_Lock_Lock::set() is now protected, not public, so custom lock plugins should be updated to conform this. Also it would be good (but not required) to remove checking logic from custom set() methods and limit their functionality to lock setting only.