Only request tiles which have out-of-date content

Instead of constantly requesting tiles and throttling requests, only
request tiles if the application signals that the layer contents have
changed.
Does it make sense for this to be a tuple struct where everything is public? That sort of takes away the benefits of the abstraction. As far as I can tell, other modules only ever create a new `ContentAge` starting at zero and then compare them. Maybe it should be a struct with a constructor that starts it out at zero.