Added email to attributes requested from openid.

The email will be used as an identifier for which player account this user belongs to.
Updated user_json format (in a comment) and changed username to user for readability.
Added skeleton files with some initial methods for Database and Game classes.
Created FlatFileDatabase class for a file driven database.

I also changed the Game class to utilize this db type. No testing yet.
Added logging for Game and Database classes.
Created Game object and conntected to db before tornado starts.
Added log formatting and a console output for errors.
Added check to see if path exists before trying to create it.
Return boolean to determine if a method ran successfully.
Implemented FlatFileDatabase.big_bang () to remove the contents of the universe dir.

I also changed the connect() method to create an instance variable 'path' for readability of the full universe path.
Added is_empty method to determine if big_bang needs to be run.

Also added a check during the connect to run big_bang() if is_empty() returns True.
Created ability to call big_bang from command line.
Actually made it work this time.
Changed big bang so the universe dir would remain after contents are cleared.

Note: This will not be able to handle subdirectories.
Added Player class and implemented FlatFileDatabase.add_player.

I added db_exists() to the base Database class to improve readability (particularly with error checking) for each method.

Players are saved in the universe as <name>.player files, there will be a one element of the player class on each line.
Implemented get_player().

This uses a local method of _read_player(), which may be moved to Database if it is useful for other database types.
Implemented /add/player page to create a player for a user.

After the player is created, the browser is redirected to the main page.
Display the logged in player on the main page.

This implements the get_player_by_id for Database and Game. For the FlatFileDatabase, this has to scan every .player file to look for that player's id, but this will be much easier with a real database.

Right now this is also loaded every time the page is loaded. That may become a problem down the road if there are many page loads, but I think it is fine for the plan of using more javascript to execute commands (rather than POST calls which would reload the page).
Add a link to create a player if the current user doesn't have one.
Fixed a rare issue where the user's cookie doesn't have an email field.

This should only happen in the early development of the project, when a cookie is saved before the email field was added. If we do find that the email field is not present, then we clear the cookie and force another login.