declare variables before use
NUM_BASE constant for defining numerical base of argument
NO_OPTIONS constant to indiciate no waitpid options
don't write parital line immediately, memcpy into start of next buffer
use _exit in children
comment about potential memcpy overlap
ensure that stdout of children are recombined at full lines

stdout is useless otherwise, because a line can be made of partial lines
from the child processes writing at same time as each other.

Results in a performance hit for 1 process, but comparable performance
for 4 or more processes.

Will likely add an option to disable this feature for maximum
performance, and also reimplement with non-blocking IO at some point.
add getopt, -n for num spawns, --no-recombine for interleaved output
make parent wait of reader process
add check that no unrecognised arguments were present

getopt_long re-arranges argv, so these would end up becoming part of the
command!
use non-blocking IO for reading from child stdouts
remove fds immediately from list when closed