Fix header file generation to not be confused by empty (but non-NULL) option string.

You shouldn't use "" as an option string because a NULL allows toy_init()
to avoid calling the option parsing logic entirely, which lets it drop out
when nothing's using it (ala scripts/single.sh builds). That said, init.c
is currently using a "" option string and a USE_ macro taking advantage
of string concatenation may require a "" option config, so...
Fix two bugs reported by Ashwini Sharma.
Fix another bug reported by Ashwini Sharma.
Broken URL that's been pointed out to me a couple times when I'm not at a machine I can fix it from, keep forgetting...
Please find the patches attached herewith for adding 3 new commands -
1. freeramdisk - If we unmount or detach the RAM disk based file system the Linux Kernel
   will not free the allocated memory associated with the RAM device. This can be useful if
   one wants to mount this device again:  All data will be preserved.
   If we need to free the memory back to the Kernel, one can use the command: "toybox freeramdisk <RAM device>".

2. openvt - Successfully opens a new virtual terminal as mentioned with -c option
        otherwise search and open next available VT.
with -s option it switches to new VT
with -s -w option, it switch back successfully to originating VT.

3. deallocvt - Deallocate specified virtual teminal.
   if no virtual terminal is specified, it deallocates all unused VT.
Cleanup freeramdisk: tabs to 2 spaces, square brackets for option name, do optional cleanup under if (CFG_TOYBOX_FREE) guard.
Promote freeramdisk from pending to other, default y.
Factor out mkpathat.
Add "volatile" annotation to peek/poke to stop potential optimizer overreach.
Move mkpathat to lib, remove redundant function used by patch.
Patch from Isaac Dunham to add cpio -d, with a few tweaks by me.
Cleanup cpio: fiddle with help text, make option parsing require/exclude -iot combinations, move loopfiles_stdin() down after write_cpio_member() so we can hardwire it instead of using a function pointer that only ever has one value.
Cleanup cpio: use getline() instead of fgets(), have getline() allocate its own memory (instead of using toybuf), use perror_msg() instead of lower level verror_msg() (which is really an internal function needed to implement perror_msg()), don't set execute bits on created archive.
Next round of cpio cleanup.