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.
Clarify an unclear comment pointed out by Steve Long.
There are cases when the long options are of the format abc-def. In current implementation FLAG_xxx macros are generated for long options too. with __-__ sign in the macro, it will generate errors.

I am of the opinion that __-__ be converted to '_' for generating the FLAG_xxx macros and be used in the command.

This will enable the user to 'abc-def', but be handled like 'abc_def' in code.
Fix mkdir -p with absolute paths.

Stripping leading / is not the right thing to do there.
Broken when the code moved to lib and was genericized for use elsewhere.
Most of the remaining cpio cleanup.
Several cpio bugfixes spotted by Isaac Dunham.
Promote cpio out of pending.

After some waffling I put it in "posix", even though it was last specified in
susv2 (where it was the obsolete 6 byte header entries predating susv4).

LSB specifies it, including the 8 byte header fields, but for the actual
command it just references SUSv2. (LSB isn't so much a standard as Red Hat's
"notes to self".)