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 branch 'pr2156-backport' into production

* pr2156-backport:
  That was a stupid error
  Reword the error message and log the error.
  Limits messages to staff users only
  Add messages when apphook raises exception in menu
  Fixing #1649 - NoReverseMatch raised if apphook doesn't exist