util: dont check db until join testfiles

it has nothing to do with test files
_exam_lib: remove testfiles after join

otherwise it cannot garauntee safity
exam: rename debug mode to fake mode

debug is about additional logging
but fake just reject all changes
db: use sqlalchemy instead of sqlite3
db: minor fixes

set client default
remove unused imports
db, exam_lib: rename columns count -> passed, fail -> failed