[ticket/12765] Use db_tools instead of generating queries at moment

PHPBB3-12765
[ticket/12765] Execute query directly from db tools

PHPBB3-12765
[ticket/12969] Add template events around username link on composing pm

Add template event before/after find username link on composing pm
to allow extensions perform additional actions on user finding.

PHPBB3-12969
[ticket/13031] Only use mimetype guesser guess if it helps us

If we already have a mimetype and the guesser's guess is the default fallback,
we should keep the already existing mimetype the browser supplied. Otherwise,
platforms that might not support mimetype guessers will cause us to always
have the mimetype set to application/octet-stream on images. This will prevent
users from uploading images.

PHPBB3-13031
[ticket/13031] Guess with all mimetype guessers and pick best guess

PHPBB3-13031
Merge pull request #2868 from rxu/ticket/12969

[ticket/12969] Add template events around username link on composing pm
Merge pull request #2748 from carlo94it/ticket/12765

[ticket/12765] Use db_tools instead of generating queries at moment
[ticket/13031] Slightly change behavior of choose_mime_type and add unit tests

The mime type 'application/octet-stream' will still always be overwritten by
proper guesses. However, guesses with guessers that have a higher priority
will now overwrite previous guesses even if the mime types of these guesses
had a slash in them.

PHPBB3-13031
Merge pull request #2918 from marc1706/ticket/13031

[ticket/13031] Only use mimetype guesser guess if it helps us

* marc1706/ticket/13031:
  [ticket/13031] Slightly change behavior of choose_mime_type and add unit tests
  [ticket/13031] Guess with all mimetype guessers and pick best guess
  [ticket/13031] Only use mimetype guesser guess if it helps us