[DONE] Refactoring to allow user properties for anonymous users with HttpSession fallback

As mentioned in #1014, user properties should fallback to HttpSession transparently. This PR creates an AnonymousUser stored in current session when there isn't a logged user.
The actual Cookie stored user settings will be ported to properly UserProperties and associated with the User data.