Significantly simply the internal workings of the birth process

Instead of having the game pull in commands from the UI during birth,
make it so that the UI pushes commands to the game.   This also required
turning the birth commands into do_cmd_ style individual functions.

Overall this makes it more obvious what is going on, and is the model
for future core-UI split work.
Move some birth-related stuff to birth.c
Merge pull request #358 from takkaria/restruct

Significantly simply the internal workings of the birth process