Refactor command system

Chat commands started out as a basic case, but as I kept tacking commands on it became an ugly if-else statement.  This branch cleans up commands on both the serverside and clientside.