need_passwd option for user_check

user_check is useful function but it also needs sudo access
sudo access is primarily required to parse /etc/shadow.
There are situations when
    - passwd is not required information
    - sudo access is not desired/possible

So added need_passwd parameter to user_check().
- default is True to make sure existing use cases do not break
- added tests

with need_passwd=False user_check runs much faster :)