decorator: do not estimate remaining time when 0 elements have been processed

>0 processed items are needed in order to estimate time, otherwise division by
0 happens.
decorator: Plug a leak

The values returned by g_variant_get() must be freed.
decorator: Do not leak TrackerDecoratorInfo structs

Set the only reference to the decorator info as the GTask return
value, so it is definitely destroyed when the GTask itself is
unref()'ed.
extract: Do not leak info for unhandled files

If no extraction module was found for a file, the corresponding
TrackerExtractTask was being leaked.
extract: Ensure a task is added to priv->running_tasks just once

If a tasks was iterated over multiple extraction modules, the task
ended up inserted on priv->running_tasks more than once, but only
removed once when the task finished, leaving dangling pointers in
priv->running_tasks.
extract,gif: Plug a leak

In case of error, the filename was being leaked.
extract,gst: Ensure GstDiscovererInfo structs aren't leaked

gst_discoverer_discover_uri() may return a non-NULL error and
a GstDiscovererInfo pointer, so ensure it is freed in case of
error. The info was also being leaked on successful extraction,
that is fixed too.
extract,mp3: Plug a leak

Those loops bail out because the variable word hasn't been found to
contain non-blank characters, but it still may point out to strings
like "", so ensure that memory is freed.
extract,msoffice: call g_free() on the right pointer

the "keyw" variable ends up pointing to chunks within the string
that must be freed, so keep a pointer to the original string
so it can be freed afterwards.
extract: Plug a leak

If the string being processed is detected as UTF16, the "utf8"
variable would already contain a malloc()'ed string, so the
GString would be leaked altogether.

Then, ensure the string is freed if already converted from UTF16,
and spare the utf8 validation too, since we already know the string
is valid utf8.