UI: split out server callback handlers into their own modules

Easier to make changes and maintain, tests have been updated
and still are fully working
UI: extract audio effects into their own modules

AudioControls treat audio effects in a componentized fashion
so each is isolated / modular and can produce more complicated
sound effects
UI: swap mute/unmute gfx