shm: split up create/init
do runtime allocation of arrays in the shm
remove a MAX_NR_CHILDREN loop
parse args before setting up the shm.

this allows us to kill off the setup_shm_postargs function
create_shm either succeeds, or exit()'s
kill off MAX_NR_CHILDREN

We are now totally dynamic, and -C has no limit other than memory.
move max_children to child.h