Make it possible to run genkernel as an unprivileged user - useful to build a kernel from an ebuild

I am building my kernels from an ebuild (and making a binary package out of it) and had to do the following fixes because genkernel was breaking here and there (see the actual commits).

I may have a very niche use case here but the issues I encountered should be fixed anyway.

All these problems would be encountered by anyone running genkernel as an unprivileged user to prepare a kernel image or an initramfs.

The commits are self explanatory.