- Replacement for setproctitle()

- Improve PAM support (a pam_lastlog module will cause sshd to exit)

- Better documentation

- Replace the horror in acconfig.h which tries to comphensate for the 
  lack of u_intXX_t types. There must be a better way.

- Cleanup configure.in

- Next now has sigaction() based on sigvec().  But it sill does not
  seem to act correctly.  Ctrl-C and Ctrl-Z don't return echo to the
  underlying shell.

- scp is broken under NeXT, and will need some TLC to be portable to
  such an old platform. "struct dirent" does not exist, and under
  next those functions take a single integer input.
