Merge getpass from libc, plus a few fixes.