+ pam authentication for non-root use
rewrote check_credentials to be exception-based
will always pass base_dir to cherrypy.quickstart