Introduce Context API for consistent data handling
A new API for containing current information about various settings is added - Contexts.
The current context contains various (flexible) aspects, which act as a data bag.
An aspect is typically exposing only the necessary parts, e.g. not a full frontend user object, but only the data that is needed for various checks.
In practice, the Context API replaces a lot of inconsistent settings spread over all globally available objects (TSFE, sys_page, BE_USER) and makes them available at any time of the application / request lifecycle.
Any extension can add an aspect to the current context.