libtracker-direct: don't allow connection if current and db locale mismatch

If the tracker-store (and therefore the database) are using a specific locale,
we need to make sure that any process accessing the database with direct access
also uses the same locale, or it won't get any results.

So, once we find that the current and db locales are different, we just fail
the creation of the Tracker.Direct.Connection, and the application will
automatically fallback to using the Tracker.Bus.Connection.

E.g. with tracker-store running with en_US.utf8, if we use a query with the same
locale, it goes ok:
  $ LC_COLLATE=en_US.utf8 tracker-sparql -q 'SELECT ?u { ?u nie:url "file:///home/something.png" }'
  Results:
    urn:uuid:9e75e781-88b7-96bb-a3cf-b2ae77d4d735

Without this patch, if not using the same locale, we would have:
  $ LC_COLLATE=C tracker-sparql -q 'SELECT ?u { ?u nie:url "file:///home/something.png" }'
  Results:
    None

And with this patch in, we'll fallback to the bus connection, yielding the correct results:
  $ LC_COLLATE=C tracker-sparql -q 'SELECT ?u { ?u nie:url "file:///home/something.png" }'
  Results:
    urn:uuid:9e75e781-88b7-96bb-a3cf-b2ae77d4d735

Note that if we force using the direct connection, it will fail:
  $ TRACKER_SPARQL_BACKEND=direct LC_COLLATE=C tracker-sparql -q 'SELECT ?u { ?u nie:url "file:///home/something.png" }'
  Could not establish a connection to Tracker: Locale mismatch, cannot use direct connection

https://bugzilla.gnome.org/show_bug.cgi?id=676209