Fixed problem handling if-0install-version when filtering is off

Error was:

    if target_versions and not self.filter_range(target_versions):
TypeError: <lambda>() takes exactly 1 argument (2 given)
Added Selections.get_unavailable_selections

This is needed to check that an app's current selections are still valid.
Do a foreground app update if necessary

If we try to run an app and the saved selections are now unavailable, do a
blocking solve-and-download (possibly with the GUI) first. Before, we triggered
a background update but still returned the old (invalid) selections.
Cope with a background update failing to find a solution

This could happen if a distribution package was updated to an incompatible
version, for example. We now try to show the GUI, and if that fails then we
show the error with a notification and give up.

The error was:

  File "/usr/lib/python2.7/site-packages/zeroinstall/injector/driver.py", line 68, in get_uncached_implementations
    impl = selection.impl
AttributeError: 'NoneType' object has no attribute 'impl'