refactored geoip to be a single function
added intial db models and tables
refactored db table formatting
changed client intialization and run commands

changed client intialization code to handle a lot more options and
added roles on startup if the db doesn't exist
refactored registration to work with new db model
changed directory structure, created new files. The server is now run through run.py
removed redundant code from server.py
renamed server.py t views.py
change command to run
updated model for sathya comments

made a few things in the code cleaner/clearer and refactored the
constructor for the Client class
making password stuff the correct length

previously, the password stuff stored the password in too short of
a field (encrypted password was 76 characters, and we were using
64) the extra length is because passlib was including some config
in the string it returns
updating views for code review

basically just updating code so it uses the correct keyword args
constructor used in the model
renamed app to centinel to avoid namespace probs
updated for code review

updated run.py to have better imports, put all of the functionality
into a __name__ == main section, and reduced the levels in our code
to create the db file/directory
updated for code review and clarity

changed the lambda function and map call to a more readable list
comprehension and changed the string type checking code to be more
readable in the model
updated variable name for clarity/code review
fixed bug where we had query instead of role objs
moved static html into it's own directory
added view for first round of informed consent
added replacement field to pass username into