Split chat server into modules

* Local module handles challenge data in memory
* DB module handles challenge data in database
* Administrator can choose if the challenge data should remain in DB