+act #15542 Change various methods of FSM to accept Duration rather than...

... FiniteDuration, to allow infinite timeouts
also note that the `State` case class has a `timeout`, should that also be changed to `Option[Duration]`?