Example of using a concern to share behavior in two controllers
Move profanity validation from controller to model

* Profanity check is called before model saved for a couple reasons:
1. If we save the micropost, that creates a validation message which
   would duplicate the profanity flash.
2. A bit more work confirm that validation error on the content was
   profanity without checking the message.

* Added validation test.
Move Micropost profanity checking logic to models

* User has method to send parent notification of profanities used.
* Micropost gets method save_with_profanity_callbacks which updates the
  user model if needed.
* Custom flash message not handled and controller spec marked "pending"
Fix custom flash message for micropost profanity

* Removed pending for controller spec
Further move logic into User model

* Created User#update_for_using_profanity(profane_words_used)
* Simplfied Micropost#save_with_profanity_callbacks
Move profanity_violation_message to MicropostDecorator

This slims up the MicropostController create action method.
Slim MicropostsController create action

* Created private method adjust_micropost_profanity_message