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