Redmine #5819: Fix /etc/shadow extra newline between each entry.

getline() includes the newline in the returned string, so switch to
CfReadLine() instead so we don't get a double newline between entries
when we edit /etc/shadow.
Redmine #5819: Fix failing chpasswd execution on Ubuntu 10.04.

Ubuntu 10.04 chpasswd doesn't support the '-e' option, so check for it
before executing. We reuse the function that checks for '-M' and as
part of this, the cached return value was removed. Slightly less
efficient, but the function is only called if something changes, and
you'd have to modify users in the thousands before it becomes a real
problem.
Merge pull request #1716 from kacfengine/chpasswd_e_fix

Redmine #5819: Users promise fixes for Ubuntu 10.04