added validate_settings() in main.py

This could probably be in `common.py` later if we were to have each module validate their own settings.

I think `FakeLogger` should be in `tests.py` or some other common place, as it will be used in various tests.