Start the big "split try_groups into bits" process.

Big functions aren't all bad, but this one had got too big.

Step 1: split out the argv reader.
Split find_group out into its own function.
Split write_to_child into its own function.
Update some size_t's to be ssize_t's.
Be less clever with pointers.

Pointers pointing to arrays is a recipe for confusion with C's precedence rules.
Check return code from daemon(3).