Add per-service macros
Summary
Some of our users have a large amount of oidc/saml/cas services, and might need different macros.
For instance: isAdmin might be calculated very differently from one service to another.
Currently, we need to define isAdmin_service1, isAdmin_service2 etc in global macros.
This slows down session creation, and may lead to sessions with hundreds of attributes.
Design proposition
I have implemented per-service macros, available for CAS, SAML and OIDC. This system allows the creation of macros that are only evaluated when a particular SP/RP/Cas APP is accessed. These macros are added to the session, and must be released through CAS Attributes, SAML Attributes or OIDC claims, like any other session variable.