Added thread-safe data acessor functions in Lib

Since the data is populated and used in different threads, a safe access must be
provided. Implemented it with QMutex and the module-wide data() and setData()
functions.
Added a save() function to Config module
Added a directory change dialog + slight refactor

Since the user can have different data directories or execute the application on
different operating systems, added a toolbar with a button which allows choosing
the directory.

Slight refactoring, which reflects changes on Config and Lib modules.

The config file was removed from tracking.