Refactor tonal component to only support whitelisted tones

This fixes my oversight causing this mornings JS errors.

Thank you to @ironsidevsquincy & @jamesgorrie for your wisdom.