Merge remote-tracking branch 'nickvergessen/ticket/10966' into develop

* nickvergessen/ticket/10966:
  [ticket/10966] Introduce MySQL base class
[ticket/11495] Fix Spacing and lowercase on docs

PHPBB3-11495
[ticket/11501] Assert the variables instead of fail() with the condition

PHPBB3-11501
[ticket/11501] Remove test_ prefix from data provider methods

PHPBB3-11501
Merge remote-tracking branch 'nickvergessen/ticket/11501' into develop

* nickvergessen/ticket/11501:
  [ticket/11501] Remove test_ prefix from data provider methods
  [ticket/11501] Assert the variables instead of fail() with the condition
[ticket/11495] Use item_id only as parameter for get_branch_data()

PHPBB3-11495
[ticket/11495] Use item_id only as parameter for delete() and remove()

The data is acquired again anyway

PHPBB3-11495
[ticket/11495] Cast some values to int

PHPBB3-11495
[ticket/10966] Introduce MSSQL base class for native and ODBC

PHPBB3-10966
[ticket/11495] Use item ids instead of requiring all data

The data is grabbed again in most cases anyway, so it just makes the system
easier to use.

PHPBB3-11495
Merge remote-tracking branch 'nickvergessen/ticket/10966-2' into develop

* nickvergessen/ticket/10966-2:
  [ticket/10966] Introduce MSSQL base class for native and ODBC
[ticket/10844] Add extension template file to locate

PHPBB3-10844
[ticket/10844] Increase prefix to not match template/ in finder test

PHPBB3-10844
[ticket/11362] Use container when available instead of creating a new instance

PHPBB3-11362
[ticket/9975] Moved a few E_USER_ERROR errors to /language

There were a few error messages that a user could experience that would, previously, be without any the ability to be localized. There are some more E_USER_ERRORs that I did not change to a constant, for example the error message that is displayed if there aren't any folders in /language.

PHPBB3-9975
[ticket/11129] Added headers to empty subscription state

"You are not subscribed to any forums".
While correct, could lead to confusion. What's missing is a header right above the message that says "Watched Topics" to match the "Watched Forums" header above. This will assert the idea that there are two separate watchable sections.
As is, it looks like that message is talking about the "Watched Forums" section, since it's listed under that header.

PHPBB3-11129
[ticket/11129] Added headers to empty subscription state

Added a newline to better seperate the two headers.

PHPBB3-11129
[ticket/11454] Correct jabber global available check

Copied from msg_jabber()

PBPBB3-11454
[ticket/11479] Fix install/update (rebuild container)

Code copied from fix in 11305

PHPBB3-11479
Merge pull request #1290 from nickvergessen/ticket/11362

Correctly sanitise the directory path in finder