Fixing #1649 - NoReverseMatch raised if apphook doesn't exist

Some apps, like cmsplugin-zinnia and cmsplugin_news will raise NoReverseMatch when trying to generate their menus before an apphook is installed. In sampleapp this is solved by adding a try-except like the one in this commit. Placing the try-except in django-cms instead of inside every app would simplify the process of writing plugins and avoid some confusing 500-errors for new users trying to install plugins.
Add messages when apphook raises exception in menu
Limits messages to staff users only
Reword the error message and log the error.
That was a stupid error
Merge pull request #2234 from yakky/feature/messages_1649

Extends PR #2156 with feedback to users