Fix additional bugs in original newgrp(1) implementation.

- Fix compile errors in conditionally compiled code
  (!(defined(BSD) && BSD >= 199306)) as noted by Anon Ymous.

- Don't do anything with the supplementary group list when the new and old
  groups are the same.  (Based on discussions with Anon Ymous.)

  + This fixes a potential bug in the conditionally compiled code
    (!(defined(BSD) && BSD >= 199306)).  In this case the new group
    is incorrectly added to the supplementary list on a system where
    the effective group is not in this list.

  + This also simplifies processing on systems where the effective
    group is normally in the supplementary list.

- Handle unexpected errors in the addgrp function more consistently
  by using warn(3) throughout the function.