This commit contains a legitimate implementation of basic auth, using cherrypy's facilities. However this introduced the problem of passing the TREC year to the basic_auth tool which is not available till the dispatcher has absorbed the request. A way around was to hook into the cherrypy call chain at 'on_start_resource', before the basic_auth processing takes place (at 'before_handler'), where the year is picked from the URI and plugged into the Config() object. Config() is now healthier, while Participant() no longer creates the mess of authorizing requests inside if-then-else structures. Config() carries TREC-specific configuration information, such as year (Config.year), paths to resources on the file system (Config.fs) and basic_auth functions Config.pid() (that returns the entire pid:password dict read from ptable) and Config.encrypt() that implements an encryption method for storing the passwords. The participant table has spun off ptable and rtable (rtable lists RUNIDs of each participant), each a simple JSON that maps to a Python dict. Both the tables are keyed by the PID. One point to note at this stage is that request to the root (i.e. http://localhos:8000/trec) does not get handled correctly, because of the missing TREC year, without which authentication fails. This needs fixing.