fix(i18n): allow core to load translations for a specific language on-demand

By default Elgg is loading only English and the language of the logged in
user. These two are not enough e.g. when we want to send a notification and
the recipient is using a third language. This fix makes it possible to load
translations for a specific language when necessary.

Refs #3151
fix(bookmarks): fixes more link in group bookmarks widget

Fixes #6583
fix(db): query cache properly handles more callable types

The former query cache did not generate unique ids for callbacks. Notably all
array callbacks were considered the same.
Merge pull request #6948 from mrclay/query_cache_callback

fix(db): query cache properly handles more callable types
Merge pull request #7273 from juho-jaakkola/load_translations_on_demand

fix(i18n): allow core to load translations for a specific language on-demand
chore(tests): fixes unit test failure to create user

A test was using an old function to create the user salt and the function
output more bytes than the salt field could hold. Here we replace it with
the correct function.

Fixes #7303
Merge pull request #7305 from mrclay/7303_units_19

fix(tests): fixes unit test failure to create user
fix(i18n): translate notification messages to the recipient's language

Fixes #7241, Refs #3151
chore(mbstring): remove PHP 5.6 notices due to deprecated ini setting

In PHP 5.6 the ini setting mbstring.internal_encoding was deprecated. Solution
is to only set it if a value already exists.

Fixes #7244
Merge pull request #7307 from mrclay/7244_mbstring_errors

chore(mbstring): remove PHP 5.6 notices due to deprecated ini setting
Merge pull request #7275 from juho-jaakkola/7241-notification_languages

fix(i18n): translate notification messages to the recipient's language
Merge pull request #7306 from mrclay/6583_bookmark_widget

fix(bookmarks): fixes more link in group bookmarks widget
fix(i18n): improved change password email subject and body text

fixes #6960
Merge pull request #7310 from jdalsem/password-change-translation

fix(i18n): improved change password email subject and body text
fix(search): keep container param intact when navigating search results

fixes #7250
fix(css): removed datepicker fixed width causing visual bug

datepicker can handle different font sizes, but changing the font size
causes visual issues (too much padding, or text overflow)

fixes #4964
fix(install): prevent WSOD caused by site default language not being defined early enough

This make sure site default language has been defined before installer calls
elgg_echo() for the first time.

Refs #7273
fix(css): stop CSS from overwriting the width and height added in CKEditor

Fixes #7269
Merge pull request #7324 from PerJensen/image_width_height_issue

fix(css): stop CSS from overwriting the width and height added in CKEditor
Merge pull request #7318 from jdalsem/datepicker-width

fix(css): removed datepicker fixed width causing visual bug