Huge commit.

- Add uid comparison on the update for better compromised check.
- Compromised now throws an error by default
- Update max value is now stale / 2 for safety
- Change remove to unlock
- New unlock does not remove locks unless owned
- Minor bug fixes & improve tests