fix(database): use the request-based database sessions provided by flask-sqlalchemy
Currently the database session is created during application startup and is used in all threads. This is problematic, since the session is not thread-safe. Now we use the request-based database session provided by flask-sqlachemy instead. But this does not really solve the problem of using the same session in different threads, since the threads are started within a request.