libtracker-extract: plug leak
tracker-fts: Make the property list per-thread data

This is global memory, and shared across threads, which doesn't play well
when (un)initializing it, as multiple simultaneous accesses can occur.
tracker-extract: Fix possible invalid memory read/write

If length is 0, out of bounds data would be read, and then written.
tracker-extract: Invert initialization order

tracker_extract_persistence_invalidate() may already be using indirectly
the priv->persistence hashtable, ensure it's set up before this is called.