Small fix: avoid reading current language if safe_translation_getter() reads custom language
Make the language_code optional for the cache functions. BIC NOTE!!

* The language_code can be read from the instance if needed.
* NOTE: had to change ordering of `get_cached_translated_field()`.
  This makes the function a lot easier to use, however,
  please check your code when upgrading!
Optimize prefetch access. Avoid constructing a queryset