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
bump version number
Merge branch 'master' into data_struct_redesign