Currently we spawn the calculator two times for each operation, one to check
if the search provider is valid for such syntax, the other time to actually
present the results. But since these results are just available at first
call, we can just keep them around and return them if the shell requires them.
Since the search provider deamon is kept alive for just few moments, there's
no real need to cleanup the cache using a queue.
In case of multiple async calls, reuse cancellable instead so that we can
just kill all the related processes one time at once.
search-provider: cancel the current process on new calculation request
As there's just one shell running at time, there's no point of supporting
parallel calls, we can just safely refer to the last equation as the only one
we need to compute.
Since we're renewing it at every call involving a process call, we can just
set it to a lower value than the default dbus proxy timeout, so that the provider
will return invalid values before that the timeout has been hit.