[ticket/11283] Extension manager follow symlinks.

All extensions are located in the `phpBB/ext` directory,
however the `phpbb_extension_manager::all_available()`
method only looks into actual directories and ignores symlinks.

Add the `RecursiveDirectoryIterator::FOLLOW_SYMLINKS` flag to
the `new RecursiveDirectoryIterator` call so that you can store
extensions in a different location and use symlinks so that
phpBB can recognise them.

PHPBB3-11283
[ticket/10805] Clear loading alert timeout after ajax request finished

The timeout for the "request timed out" popup should be cleared if it
finished. Since it is currently not cleared, the timeout alert appears as
an extra overlay if another ajaxified function is ran within 5 seconds of
the initial function call. This patch will take care of clearing the
timeout if either the success (function return_handler()) or error
(function error_handler()) functions are called.

PHPBB3-10805
[ticket/11306] Introduce phpbb_create_default_container

Extracts default container construction to factory function, removing
boilerplate duplication for container construction.

PHPBB3-11306
[ticket/11306] Add docblocks to all container related functions

PHPBB3-11306
Merge PR #1175 branch 'igorw/ticket/11306' into develop

# By Igor Wiedler
# Via Igor Wiedler
* igorw/ticket/11306:
  [ticket/11306] Add docblocks to all container related functions
  [ticket/11306] Introduce phpbb_create_default_container
[ticket/11305] Extract hook finder from cache service.

Unlike most other things in cache service, hook finder does not need
a database connection.

PHPBB3-11305
[ticket/11305] Retrieve cache driver from container rather than cache service.

This only covers some of the call sites.

PHPBB3-11305
[ticket/11305] Create a normal container during final installation step.

The final step calls a bunch of code which expects a full phpBB
runtime environment. Also, by this step everything should be configured
and database schema set up.

Therefore, in the final step replace installer container with a normal
phpBB container.

PHPBB3-11305
[ticket/11305] Use phpbb_create_default_container.

PHPBB3-11305
[ticket/11305] Adjust comment.

PHPBB3-11305
[ticket/11305] Define hook finder as a service on the container.

PHPBB3-11305
[ticket/10805] Compare phpbbAlertTimer against null

PHPBB3-10805
[ticket/11305] Check for $cache being null before using it in db drivers.

There is no reason why db drivers must have a cache to work.
They query the database, that part works without caches.

PHPBB3-11305
[ticket/11305] Mock container for cache driver in functional create_user()

create_user has calls to fetch the cache driver from the container. This
PR mocks the container and returns a null cache driver in that case.

PHPBB3-11305
Merge remote-tracking branch 'p/ticket/11305' into develop

* p/ticket/11305:
  [ticket/11305] Mock container for cache driver in functional create_user()
  [ticket/11305] Check for $cache being null before using it in db drivers.
  [ticket/11305] Define hook finder as a service on the container.
  [ticket/11305] Adjust comment.
  [ticket/11305] Use phpbb_create_default_container.
  [ticket/11305] Create a normal container during final installation step.
  [ticket/11305] Retrieve cache driver from container rather than cache service.
  [ticket/11305] Extract hook finder from cache service.
[ticket/11302] Correctly select first timezone or selected timezone

While registering, we should default to a given timezone. By selecting the
first timezone by default, this is fulfilled. This doesn't happen
currently, as only the "Select a timezone" selection appears.
If a user selects a timezone during the registration process we should
also make sure that the selected element is still selected; even if we
have to return to the registration page, i.e. if there was an error while
submitting the form. This is currently not the case.
With this patch the javascript code will behave correctly.
Additionally, a duplicate inclusion of timezone.js has been removed as it
was not needed.

PHPBB3-11302
Merge PR #1176 branch 'marc1706/ticket/11302' into develop

# By Marc Alexander
# Via Marc Alexander
* marc1706/ticket/11302:
  [ticket/11302] Correctly select first timezone or selected timezone
Merge PR #1153 branch 'marc1706/ticket/10805' into develop

# By Marc Alexander
# Via Marc Alexander
* marc1706/ticket/10805:
  [ticket/10805] Compare phpbbAlertTimer against null
  [ticket/10805] Clear loading alert timeout after ajax request finished
Merge remote-tracking branch 'erikfrerejean/ticket/11283' into develop

* erikfrerejean/ticket/11283:
  [ticket/11283] Extension manager follow symlinks.