Optional Server Password

Hi @vladikoff,

I've cleaned up and centralized some of the password logic here, and also made the password optional (e.g. empty password string conf is now treated as no password here).

cc @jamesreggio
I believe using `express.basicAuth` will always prompt for a password if we go with only `authMiddleware`. (even with password isn't needed)