pref(entities): adds preload_containers option to elgg_get_entities

This allows devs to preload the containing entities of a fetched list. It
refactors the EntityPreloader a bit to support both use cases, and adds
container preloading to lists of group discussions.

Fixes #7663 

Where discussions appear across different groups, this save ~ 10 queries.
I know you didn't introduce it here, but I really dislike this variable name :)