Riddle: I have three colors, each with a different meaning. When I'm old they become dull, but when I'm new they are gleaming. I help keep people safe, but sometimes they hate me. You won't see me in a forest, but you will in a big city. Some of me have short lengths, and some of me have long. And in the time that the longest of me take, you could sing a very long song. When my colors change, people get happy or sad, and when you guess what I am, you will be very glad. What am I?