[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/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