fix bug 1072380 - make sure we raise validation error at the right spot of the call chain.

The problem was that the validation error was raised at a stage where it didn't trigger a re-rendering of the page.
This also contains some refactoring of the newsletter feature to encapsulate it in the NewsletterForm.