client: add support for persistent image overlays

This, so called "superlaptop" feature, can be activated by defining a
kernel argument puavo.image.overlay=NAME. This creates a directory
/images/overlays/IMAGE/NAME which will be mounted as a writable layer on
top of a read-only root filesystem. IMAGE is the squashfs image
filename. Both OverlayFS and AUFS are supported as underlying union
filesystems.

Mount order is changed slightly: now /mapper/puavo-images is mounted in
init-bottom before init-puavo is run.
client: refactor common union mount functionality to a separate function