Split the shared group data from the shared passwd data.

Found by the toybox id(1) which calls both getpwuid(3) and getgrgid(3) before
looking at either result. The use of a shared buffer in this code meant that
even on a single thread, the data for any of the passwd functions would be
clobbered by the data for any of the group functions (or vice versa).

This might seem like an insufficient fix, but POSIX explicitly says (for
getpwnam) that the result "might be overwritten by a subsequent call to
getpwent(), getpwnam(), or getpwuid()" and likewise for other members of
that group, plus equivalent text for the group-related functions.

Change-Id: I2272f47e91f72e043fdaf7c169fa9f6978ff4370
Fix struct stat member types for x86-64.

Bug: 17062519
Change-Id: I93b1e8b1d4b6918ab7c3a985e2f7da277077375e
Merge "Fix struct stat member types for x86-64."
Remove bogus #include <endian.h> from <sys/stat.h>.

Bug: 17062519
Change-Id: I3dc21ee8b90580f112c73c72aff5d3bec4778026
Merge "Split the shared group data from the shared passwd data."
Fix the types of some of the struct stat fields.

Bug: 17062519
Change-Id: I5207867939f3c2876bf6448e565fa4364aa7e4f0
Merge "Remove bogus #include <endian.h> from <sys/stat.h>."
Merge "Fix the types of some of the struct stat fields."