More vehicle updates, reverted one feature

Reverted the ownership transferral feature as it caused issues that I
don't have time/motivation to test and fix.

Added checks to ensure vehicles that don't have doors don't get locked.

Refined some of the structure for saving vehicles, setting owners and
updating their data files.

Moved the "veh_lastUsed" assignment to OnPlayerExitVehicle again. It was
causing issues with the hack detection and falsely reporting vehicle
teleports because OnPlayerStateChanged is called some time after
OnPlayerExitVehicle.
Fixed some client crashes

Removed the "Rusty Metal Sheet" item from in-world loot spawns. This
caused client crashes if a rusty sheet spawned inside a single-player
garage with auto-open doors. It was much easier to simply remove the
item from loot spawns than try and find all the loot spawn points that
were in garages.

There is still an issue which needs to be addressed: if a player drops a
rusty sheet inside one of those garages, their game will crash and
anyone who goes near will also crash. (Need a library of all
single-player garages so dropping this specific item in them can be
disabled)
Changed some loot spawns

A cluster of loot spawns were spawning industrial vehicle loot for some
reason, these loot tables include the crashy rusty metal sheet item.
Changed these spawns to normal industrial spawns.
Updated tooltips and key actions

Added a "Drop bag" key action.

Updated tooltips for bandage, medkit and doctor-bag to reflect recent
changes made to these items.
Added IsNaN function and check

Thanks to Y_Less for the IsNaN function.

Added a check to the HackDetect code, somehow a player managed to get a
vehicle to NaN coordinates which resulted in a NaN distance and
repeatedly reported players for vehicle teleport.
Small fix to vehicle data and VehicleHasDoors
Added bad-location checks and improved aliases

Updated CheckForExtraAccounts to ensure accounts above level 4 aren't
revealed if their aliases have no admin level but the current account
does.

Added IsAtDefaultPos and IsAtConnectionPos to cancel account saving if
the player crashes while logging in/loading.

Added code to block damage for unspawned players. Turns out players
appear at the LS griffeth observatory for a split second before spawning
and can be shot/tasered/attacked by a camping player.
Updated wheel and headlight code

Updated headlight and wheel code to properly show only back/front for
bikes.
Updated chat colours, anti flood and admin cmds

Moved admin commands to scripts titled by level number for easier
navigation.

Rearranged commands to better suit staff roles:
Game master is for player control but nothing more, they can mute and
warn for chat related offences. They cannot enter duty or spectate. This
position can't be abused to gain an advantage in the game.
Moderator and Administrator are more for catching hackers and have the
tools that can be abused.

Will soon rearrange developer commands because that Level4 file is a
mess.

Updated chat colours for local and radio, these channels show in a
separate colour for distinguishing from global chat easier.

Fixed problems with anti-flood muting, this system now uses the actual
muting function so it will block "/g [text]" properly as well as display
the time remaining until the unmute.
Fixed some issues with the ban functions

Added a name variable for the ban-by-command menus so that a ban can
still be continued even if the player disconnects.

A ban will now shift a player into the sky so they can't continue
messing with the game-world while the admin is typing information.