CAMI functions
CAMI.UsergroupInherits(usergroupName1 :: string, usergroupName2 :: string) :: bool
CAMI.InheritanceRoot(usergroupName) :: string
CAMI.RegisterUsergroup(usergroup :: CAMI_USERGROUP, source :: any) :: CAMI_USERGROUP
CAMI.UnregisterUsergroup(name :: string, source :: any) :: bool
CAMI.GetUsergroup(usergroupName :: string) :: CAMI_USERGROUP
CAMI.RegisterPrivilege(privilege :: CAMI_PRIVILEGE) :: CAMI_PRIVILEGE
CAMI.UnregisterPrivilege(name :: string) :: bool
CAMI.GetPrivilege(name :: string) :: CAMI_PRIVILEGE
CAMI.PlayerHasAccess(actor :: Player, privilege :: string, callback :: function(bool,
string)[, target :: Player, extraInfo :: table]) :: nil
CAMI.GetPlayersWithAccess(privilege :: string, callback :: function(table)[, target :: Player, extraInfo :: Table]) :: nil
CAMI.SteamIDHasAccess(actor :: SteamID, privilege :: string, callback :: function(bool, string)[, target :: SteamID, extraInfo :: table]) :: nil
CAMI.GetUsergroups() :: [CAMI_USERGROUP]
CAMI.GetPrivileges() :: [CAMI_PRIVILEGE]
CAMI.SignalUserGroupChanged(ply :: Player, old :: string, new :: string, source :: any)
CAMI.SignalSteamIDUserGroupChanged(steamId :: string , old :: string, new :: string, source :: any)