Use strtoul(3) instead of atoi(3) for user input

Other uses of `atoi(3)` aren't a big deal, since they're coming from `readdir(3)` or proc files. Processing user input should probably be a little friendlier. This patch tries to better handle invalid arguments for pids.