Massive updates to the GUI, Playlist, Preset loading, etc

This PR contains many enhancements and new features, including:

- New Playlist object that manages the preset playlist and supports load/save (closes #14)
- New PresetLoader object for dynamically loading modules in the /presets/ folder (partially addresses #11)
- Add parameter editing to the GUI (closes #9)
- Adds playlist editing (creation, deletion, reordering) to the GUI
- Many small bugfixes to Mixer, the GUI, and presets.