Feature audio manager

Created an audio manager to handle loading and playing sounds throughout the app. A singleton class is used. Background music, menu buttons, pipe turning, clearing infection, and level complete sounds are implemented. Mini game sounds (spam/not spam correct buttons, bounce sounds) are not. Sounds for unveiling tiles and spreading infection are loaded but never called as our game doesn't track that over time.
This singleton pattern makes sense, but in the past I've seen and used `dispatch_once`. Did you consider that pattern as well? I'm not sure what the difference is, but we should probably be aware of it.