Added spectator team check in PlayerSpawn.

Gamemodes seem to love making the player still "alive" when they're spectating.
This should turn off items for spectators.
Fixed empty chat command setting triggering menu.
Added preview window.
Texthat issue.
Added CATEGORY.AllowedUserGroups and items in the shop menu are modified like they would be on players (like changing material and scale)
Can change text color on text hat and should fix spectated players having your text hat.
Added AllowedCallback to CATEGORY. Tidied code.

Added CATEGORY.AllowedCallback( [Player] ply ) which can be used to
check if a player with special properties ( not related to usergroup )
can access a tab / purchase items in a tab. Would be good for limiting
prisoners ability to buy weapons in Jailbreak for example.

Also tidied up some of Adam's code for AllowedUserGroups.