umount-chroot: Call umount one mount point at a time

umount, called with multiple parameters, may return 0 even if many
mount points cannot be unmounted, due to an overflow in its exit
code.

We fix this by passing `-L 1` to `xargs`.

Finally, we sort mount points in inverse alphabetic order, to
minimize the number of loops required.
unmount-chroot: -n 1 is good enough
Merge pull request #876 from drinkcat/fix-unmount

umount-chroot: Call umount one mount point at a time
croutonxinitrc-wrapper: Fix xbindkeys kill with dash

`wait "$!"` returns a >0 exit code when interrupted by a signal.
bash still executes the signal handler, then quits (-e), while
dash bails out immediately, leaving xbindkeys with PID 1 as parent.
Merge pull request #879 from drinkcat/fix-xbindkeys-kill

croutonxinitrc-wrapper: Fix xbindkeys kill with dash
targets/xorg: Install lts-saucy drivers on precise for Haswell support

We first pull in `lts-saucy` replacement drivers, then `xorg`:
- Doing it in that order still pulls in `xorg` dependencies like
  `xterm` and `xinit`, and avoids the need to specify them manually.
- Removing ``--minimal`` from the `lts-saucy` line also works, but
  also pulls in stuff like an updated kernel, which we don't want.
- Installing `xorg` after `lts-saucy` does not install old drivers
  (so there is no useless download).
- On existing chroots, installing `lts-saucy` uninstalls old drivers,
  and marks a number of packages as not required, like `xterm` and
  `xinit` (which would be cleaned later by autoclean). Reinstalling
  `xorg` does not install new packages, but makes sure these packages
  are not autocleaned.
targets/xorg: Install lts-saucy xorg whenever kernel != 3.4
Merge pull request #890 from drinkcat/precise-haswell-xorg-lts-saucy

targets/xorg: Install lts-saucy drivers on precise for Haswell/Baytrail support
unity: set env variables for global menu

Fixes #869.
unity: fix Unity HUD (alt key menu)

Fixes #802.
unity: move hacks into profiled and autostart
unity: quote window-stack-bridge
unity: code review fixes
unity: unify common service launching code
use /run instead of /var/run as ROOT

ToT now uses /run in anticipation of a udev uprev, with /var/run
being a symlink for compatibility. fixabslinks assumes no symlink
in the CHROOT variable, so /run should be used directly when
passing paths to fixabslinks.
better setting of ROOT in {un,}mount-chroot
targets/core: Set proxy variables based on previous proxy setting

On update, obtain *_proxy variables from the previously generated
environment, and export them after sanitizing the value (to make
sure we do not eval random harmful stuff).

Fixes #883.
Merge pull request #907 from smibarber/rundir

Use /run instead of /var/run as ROOT
installer/ubuntu/prepare: detect_mirror function

Detects the current mirror.
targets/xorg: >=saucy, kernel 3.4, pin down precise mesa drivers.

On saucy onwards, if kernel version is 3.4, manually pin down old
mesa libraries from precise (mesa 8), as new ones (mesa >=9)
require kernel >=3.6.

Fixes #704.