Open Existing Resource Window instead of Creating new one, Fix several issues in SoundGUI

I've got the resource window (should work for all, only tested with Sound, Background Images) to open an existing window if it exists, else create a new one. 

The algorithm is more complex than I'd like... O(n), where n is the number of windows that already exist. 

I also fixed several problems with SoundGUI:
- before, if you had two sound resource windows open, both play buttons would play the same sound(the most recently opened window). That's fixed. 
- renaming a sound file on Windows caused a "Another process is using the requested file" error. I fixed this by switching up the way SoundGUI handles files - loading and closing access to the file properly. 
- switched from pygame.mixer.music to pygame.mixer.Sound objects
- renaming a sound file to a sound that already existed causes the system to crash, fixed by appending an index to the end of the file name. So if sound_1 exists, and someone tries to rename to sound_1, it becomes sound_1_1. If you try to create another sound_1 it should become sound_1_2. 

I also updated the Readme with Window's instructions and links to downloads on dependencies. 

Added myself as a contributor on authors.txt

Update: fixed the "open recent project" button on splash screen. If the most recent project is a .py file, it gets saved to the config with an extra extension, e.g. 'project.py.py'. Fixed to where .py only gets added if the project name doesnt already end with .py 

Update 2: 
- fixed bug in Windows F1 functionality - throws error if path to project has a space in it. 
- added background images to example project

Update 3: 
- manage Pan and Volume values from GUI, sound plays in a loop so you can hear the effects of the changes as they are made
- updated GUI text to update based on actual values, and not to assume a default value