What is setState() in flutter and when to use it?