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(discussion): discussion replies respect previous subscribers

Existing subscribers to discussions were ignored when getting the
interested users for a discussion reply.

fixes #7281
fix(database): More robust sql script execution.

Implemented tests for various formats of SQL input and fixed a bug that caused
text inside SQL strings to be interpreted as comments. Specifically, "INSERT
INTO x values ('some string -- not a comment');" is now supported. Also added
support for comments prefixed with "# ".
chore(likes): removes warning about undefined delete_button variable
fix(aalborg_theme): display search when logged out

Referencing #7169
docs(web_services): Documentation for Elgg 1.9

Updated function names to be compatible with Elgg 1.9. Information about
migration from 1.8 to 1.9.
Merge pull request #7292 from stianlik/patch-1

Documentation for Elgg 1.9
Merge pull request #7298 from juho-jaakkola/likes_undefined_delete_button

chore(likes): removes warning about undefined delete_button variable
Merge pull request #7294 from stianlik/1.9

fix(database): More robust sql script execution.
Merge pull request #7301 from PerJensen/search_fix

fix(aalborg_theme): display search when logged out
Merge pull request #7282 from jeabakker/discussion_subscriptions

fix(discussion): discussion replies respect previous subscribers
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