Avoid a discrepancy in file recognition

We are using a loader to implement some of the APIs that
are taking a filename, such as gdk_pixbuf_new_from_file_at_scale.
But the loader does not have the filename, so it can't use it
when determining the image type. This makes a difference for
types such as xbm, which have no good magic in the mime database.
Fix this by introducing a private API that lets us pass the
filename on to the loader.
Improve mime type detection

The mime database has no magic at all for xbm, and it
gets sniffed as text/plain. This is a regression from
when we were using our own magic, so be a little more
forgiving here - treat a mimetype of 'text/plain' like
uncertain results, and consult the filename. This lets
us at least recognize files with the extension .xbm
correctly again.

https://bugzilla.gnome.org/show_bug.cgi?id=573726
Add an xbm test

This tests that we correctly load a file with the .xbm extension
using both gdk_pixbuf_new_from_file and gdk_pixbuf_new_from_file_at_scale.