Adapt schema and code to allow NIS placeholder in passwd

The NIS placeholder in /etc/passwd "+::::::" doesn't have any ids so we
need to allow empty strings for the uid and gid.
We should encapsulate the check for a number somewhere, and write proper tests for it.