Cache roles as tuples, to avoid django model init costs