Allow default groups exemptions

There's a little bit of maintenance in this PR, but mostly this allows us (in the type base class) to exclude users belonging to certain groups from having their default group switched to the new group.

All it will require is we have an ACP setting where the admin can choose the groups they want to exclude from having their default status removed. It should just be a multi-select box of the group names, and the admin just select the ones they want to exclude, and it will be a global thing, not per auto group rule. We will serialize the array of group ids that were selected and store that in the config table. 

This would usually apply to admins and moderators, because normally you would not want their defaults changed when/if they get added to new groups. Otherwise they could lose their group colors/avatars/etc and not stand out in their profile as an admin or mod.
`if not sizeof`? Could we not rework this statement to make more logical sense as at present it only makes technical sense.