Resolves the current pimcore user from the token storage.
Proxy user to pimcore model and expose roles as ROLE_* array. If we can safely change the roles on the user model this proxy can be removed and the UserInterface can directly be implemented on the model.
We're calling the valid user check in pre and post auth as it is cheap and we're also dealing with pre authenticated tokens.
Loads user either from token storage (when inside admin firewall) or directly from session and keeps it in cache. This is mainly needed from event listeners outside the admin firewall to access the user object without needing to open the session multiple times.