TRUNK-3675 Cache results from getSearchLocales()

I would like us to get rid off the custom key generator, which is awkward. We should simply create List<Locale> getSearchLocales(User user) and annotate it with @Cacheable instead. The cache should use method parameters as the key. Then we can call it from getSearchLocales(): getSearchLocales(Context.getAuthenticatedUser());