Fix segfaults

	* libmisc/setupenv.c: xstrdup the static char* temp_pw_dir /
	temp_pw_shell. That way we can continue to use pw_free() without
	segving. Thanks to Serge Hallyn for the patch.
Fix memory leak.

	* libmisc/setupenv.c: Free pw_dir and pw_shell before reallocating
	them.