id: fix segfault on linux

`id -P` currently segfaults on linux.

    $ build/id -P
    Segmentation fault

The problem is the incorrect memory layout of c_types::c_passwd (struct passwd),
and subsequent dereferencing of invalid pointers in id.rs/pline()/from_cstr().

This is only tested on Linux i hope i haven't messed up the MacOS paths.


updated