[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/12852] Make get_url_parts handle get variable with no value

PHPBB3-12852
[ticket/12852] Remove whitespace

PHPBB3-12852
[ticket/12852] Add space after if

PHPBB3-12852
[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
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
Merge pull request #2919 from Senky/ticket/12852

[ticket/12852] Make get_url_parts handle get variable with no value

* Senky/ticket/12852:
  [ticket/12852] Add unit tests
  [ticket/12852] Add space after if
  [ticket/12852] Remove whitespace
  [ticket/12852] Make get_url_parts handle get variable with no value