Implement access to htpasswd-like plain text files

Adds support to the "plain" store type to be able to read user names and
passwords from plain text files with the basic format:

   username:password[:extra info]

The passwords can be optionally encrypted with crypt(2), when format is
set to "passwd". Different methods are supported for hashing on Python 3
(typically "sha256", "sha512" and "md5"), while the traditional "crypt"
method is supported in both Python 2 and 3.