Additional validation and checks to whitelist code

Ensures it all runs smoothly.

Now:
On connect, player name is checked against whitelist table and
"whitelisted" variable is set true/false.

On login, auto whitelist code is run.

Accounts code now uses IsPlayerInWhitelist instead of IsNameInWhitelist
so the whitelist SQL isn't run twice for no reason.

Whitelist counter now ensures the player it's running for is logged in
and the timer is actually stopped when it kicks a player (previously it
would keep running then kick the next player who occupied the slot).

IsNameInWhitelist now returns -1 if the query failed.