Changed behavior of the functions to be no-op in the case of the group or grade not existing. Previously it would pick defaults instead, which seems like an undesirable behavior.
Added error prints
Changed removeFromJob/removeFromGang behavior when the user doesn't already have the job/gang to be no-op rather than an error scenario to make the function Idempotent. This is also useful because we don't treat the player as having the unemployed job or the none gang.
Fixes an issue where instead of removing the old job/gang, it was attempting to remove the current one
Prevent removing/adding to the default groups as the default groups are not tracked in the database.