add new attributes
implemented sound config loading
allow 'Profiles' and 'Sounds' as profile names
added load profiles functionality
added implementation for loading active profile
turn loaded config into a property

use the dict based functions
default configuration filename is config.ini
implement configuration cleanup

- renamed dict_unloadConfig into dict_wipeOutConfig since is more accurate
- implemented the functionality of dict_unloadConfig
remove dead code
drop initSounds and initProfiles
reimplemented hasSound
reimplemented getSoundNameOfFile
TODO: implement the UI update for the active profile
Merge branch 'master' into data_struct_redesign
dictionary based: addSound + getNewSoundName

- added a dictionary-based addSound method
- added dict-based getNewSoundName that provides unique names
addSound avoids duplicates

When trying to add a sound whose file already exists in the application,
avoid the duplication by returning the existent sound name.
Always return the name of the sound.

This allows easy lookup of sounds without supplemental checks, for
files which we know are already present.
addSound2Profile: reimplmented with dictionaries
Merge branch 'master' into data_struct_redesign
addProfile, getNewProfileName, hasProfile

Implemented dictionary based variants for the functions:
addProfile, hasProfile and getNewaddProfile.
better exception message for sound readd to profile