Fixes #5949: Adds entity preloader and integration

I'm already not crazy about my idea to keep this option "private" with the double underscore. There's simply no way to keep an Elgg query function option private and use it in bundled plugins. This makes me think of named queries (#4453), which would allow us to enhance core plugin queries behind the scenes (so devs don't see the private option).

Another option is to just commit to making this option public.