mkarchroot: Refactor chroot running into a new script

Separates the two features of mkarchroot. Provides users of the new
arch-nspawn with the full feature set of systemd-nspawn.

For example, this can be used to bind custom directories into the chroot.
lib/common.sh: Introduce locking helper functions

Reduces code duplication.

With makechrootpkg not calling mkarchroot anymore,
the lock handover protocol is unneeded.

arch-nspawn does not do any locking, so add protection to archbuild.
makechrootpkg: Remove add_to_db feature

I don't think this is much use in our common workflow. Our pacman
configs don't even make a reference to /repo.
makechrootpkg: Avoid parsing PKGBUILD and support VCS sources

 - Ensure sources are available before entering chroot
 - Bind STARTDIR and SRCDEST into the chroot read-only
 - Refactor makechrootpkg and introduce meaningful functions
arch-nspawn: setarch to CARCH