flatpak: Introduce success/failure heuristics for app install

We want to pro-actively fail the install operations if we are
sure that we are running low on disk-space. This saves the network
bandwidth for user and reduce this cycle:
online fetch -> detect low disk free space -> cleanup.

* For app install:
  We make sure that there is enough space for app's download size +
  min-free-space (flatpak defaults to 500MB right now).

We might be interested to do similar for app updates and autoupdates
in following commits
1 job for uajain/free-space-checks in 34 minutes and 26 seconds (queued for 1 second)
latest
Status Job ID Name Coverage
  Build
passed #292151
build-gnome-software

00:34:26