implement custom notification intents

I took the opportunity to refactor the settings into a separate class.

refs #2424
add more docs about CacheWordHandler and the new settings configuration