Made items that are rotten show up in brown.

Since, in the inventory, the (rotten) tag might sometimes be obscured by the interface, I decided to add some color to the rotten items so they are easily identifiable.
A variable `food`, written once, read once, what's it purpose? Why not `const_cast<...>(this)->rotten()`? Same for below with contents. If something is stored in a variable, I'm going to assume that it is used several times later.

Also the if's are a bit confusing:
```
if (a or b) {
  if(!b) { // must be a then or not?
  } else 
```
Why not:
```
} else if(is_food()) {
    if(rotten())
} else if(is_food_container()) {
   if(contents[0].rotten())
```
Note that contents can not be empty if it's a food container, that is already check by `is_food_container`.

Also with #9353 you can remove the const cast, `item::rotten()` works on const objects there.