Implemented bootable media construction.

This commit includes many changes done in a week of travel. For the first time,
roar-ng II has its own kernel. The whole thing boots just fine, but the X server
still fails to start for some unknown reason.

New features ported from roar-ng:
  - Added the root file system and initramfs skeletons. hpm and the package
    tools were merged into the root file system skeleton.
  - hpm and buildpkg now depend on roar-ng II and make use of its utility
    functions. In the future, roar-ng will be installed in distributions built
    by it.

New features:
  - Implemented support for building a bootable media image.
  - The initramfs now utilizes devtmpfs. This is a rather new dependency of
    udev which means:
      - The init script no longer has to run mdev to create device nodes for the
        block devices it mounts.
      - The root file system doesn't have to contain device nodes under /dev.
  - Instead of unmounting virtual file systems (and re-mounting them at the init
    script), they are moved to the union file system. This includes the devtmpfs
    file system mounted on /dev.
  - The kernel configuration is now part of roar-ng II; it is located under
    /usr/src/linux. This configuration should be used for all distributions
    built through roar-ng II. However, it is perfectly possible to replace it
    with another, as long as roar-ng II's requirements (Squashfs, Aufs, block
    device and file system built-in) are met.
  - mksquashfs now uses a 512K block size; see Tomas M's research at
    http://www.tomas-m.com/blog/18289-Benchmark-conclusions.html.
  - An init script was added for nscd. This daemon manages the NSS cache and
    should improve the DNS lookup speed.
  - /etc/rc.conf.d was added. This directory contains the core init script
    configuration; it's parallel to init.conf.d, which does the same, for
    con-core init scripts.
  - The options the gpm daemon runs with are now configurable, through
    /etc/init.conf.d/gpm.
  - Daemon init scripts now write their PID to pidfiles once they are started,
    instead of finding them later, once they are stopped.
  - Expanded the README.

Build script enhancements:
  - The kernel API headers were moved to a separate package, to enable users to
    mix and match their own kernel packages with another distribution's headers.
    This is required because they should be the ones the C library was built
    against, while the kernel could be of a different version.
  - BusyBox is now built statically, so the initramfs does not have to contain
    shared libraries. In the case of glibc, its functionality is partial because
    of NSS - some applets won't work. However, such applets are not used so
    so early in the boot procedure, so it's fine; they work just fine through
    the root file system, which contains the entire glibc.
  - The Linux kernel package is now built with Linux-libre deblobbing, which
    removes lots of non-libre code. In addition, modules.builtin and
    modules.order are part of the package, since these files cannot be
    generated by depmod at boot-time.
  - The kernel modules and firmware are now installed under $LIB_DIR (/usr/lib
    or /usr/lib64). /lib/modules and /lib/firmware are backwards-compatibility
    symlinks, for tools like depmod.
  - Minor version symlinks under the modules directory are no longer created.
  - Architecture-independent packages are now built with "noarch" as their
    architecture.

Features removed since roar-ng:
  - Movgrab was dropped. It is broken due to changes in the YouTube API and it's
    a maintenance burden to have this package in roar-ng II, due to the
    frequent breakage.
  - The screen is no longer cleared during the boot process. This makes it
    easier to notice errors during the init script's execution.

Other changes:
  - The Slackware version used in the default configuration has changed from
    "current" to the newly released 14.0.