Rewrote critical and whitelist code to use PlayerProfile instead of name
or UUID. Also actually fixes #523.