Add cpio.

Yes, this is utterly useless just yet.
Write CPIO member.
Dummy for cpio. Doesn't actually read am archive list.
Implement cpio -o (write archive).

Includes some hammering on the old code,
plus splitting it up to allow closing the archive.
Dummy -t support.

read_cpio_member will be called in a loop by read_cpio_archive.
Make cpio_read_member work-at least in theory
Initial version of read support.
Fix misc. errors:

-read from 0 (stdin), not 1 (stdout)
-htou: add hex value of starting ofset, i++

And cleanup by using a fixed string for the trailer.
Properly set name and file length, read symlinks, fix -i, -t.

File length should be 0 in the archive if the file is special.
Symlinks have st_size = length.
Name length is the size including the terminating null.
Use (how & VAL), since (how | VAL) is wrong.
Make devices when extracting.
Minor cleanup
Don't support multiple archives (cpio doesn't)
Add symlink handling to cpio -i (extract)
Add symlink handling to cpio -o (use lstat)x
Don't let file creation errors break archive read
Don't malloc() the header.