libtracker-miner: Implement ->end* vtable API for TrackerFileDataProvider
libtracker-miner: Don't use g_hash_table_destroy() in TrackerTaskPool

Use g_hash_table_unref() instead.
libtracker-miner: Make _push() implementation easier to follow

Split internally into two functions for pushing to a bulk commit and pushing
as a priority. Easier to follow.
libtracker-miner: Fix reference leak with TrackerTaskPool

The leak occurred because tracker_sparql_task_new_with_sparql() was being
called but the returned TrackerTask* was not being unreferenced anywhere and
the call to tracker_sparql_buffer_flush() with the new task was taking its own
references internally.

Took this opportunity to make the code here easier to follow:
- do_process_file() is now merged into item_add_or_update()
- item_add_or_update_cb() is renamed to item_add_or_update_continue() so it's
  obvious it is called from tracker_miner_fs_file_notify().
- renamed various variables to make the code easier to follow.
libtracker-miner: Call tracker_data_provider_end_async() when dir is crawled

Previously we would not call this API and it meant that any implementation
with memory allocated waiting to be cleared up, would not have been freed. Now
we call this API just about the same time we signal up the stack that we've
::directory-crawled