Effect ratings and colored messages for rating-related messages

As promised in #7471, here is the PR which adds colored messages when there is a message.

Under the hood, a new `enum effect_rating` is introduced and some helper functions for it. JSON gets a new field `rating`. The valid values are `good`, `bad`, `neutral` and `mixed`.

However, do note that the `effects.json` looked incomplete to me. I have only assigned ratings to effects with descriptions or messages. For the future it should better not be forgotton to assign ratings for new effects.

Maybe this change to the effects structure can be useful for other parts of the UI as well, in the future.