[UP-4276] Async populate portlet cache on login.

`Set` expressed that a given `MarketplacePortletDefinition` either is or is not visible to the user. It's either in the set or not.  `List` expresses that a given `MarketplacePortletDefinition` might be visible N times and that there's some ordering of these visible definitions.  `Set` is more expressive of the nature of these visible definitions, no?