Add optional async parameter to updateInfoPredicate

The asynchronous call of the updateInfoPredicate (or rather of the query
in this function) will sometimes produces a 'white screen'. More specifically,
when a new widget is added (e.g. to the popover controller) and more
information about the predicate needs to be queried, a query is fired but
the code is continued. Therefore, the widget ID will not be received in time.
The white translucent overlay will not be removed.

Waiting for the result will fix this, but we only wait in the case just
described (that's why the parameter is optional, where not passing it will
invoke the old behavious). However, a slightly more JavaScripty way would
probably be to use a callback instead.