Merge graffiti into submap::cosmetics

Move graffiti data into `submap::cosmetics` (as "GRAFFITI" entry).

Most changes are because `map::graffiti_at` returns the graffiti text directly now and for using a new function `map::has_graffiti_at` instead of checking `graffiti::contents`.

I had to make `map::inbounds` const so it can be used from const methods (e.g, `has_graffiti_at`).

Setting a graffiti via iuse always succeeds. Remove the else branch there because it would never be used anyway (`set_graffiti` used to return true all the time).