(CFACT-59) Add id and gid facts

This is actually a GNU extension here and isn't supported by other compilers.  In C++, you can't declare an array without using a constant expression for the size.  Calling `sysconf(_SC_GETPW_R_SIZE_MAX)` to get the size and using a `std::vector` would prevent us from hard coding a limit.