The protocol handling was already there. What was missing was hooking it up to a sound file in the user interface.
This commit restructures noVNC, splitting it into the core directory and the app directory, with the former containing core noVNC parts, and the latter containing parts specific to the application.