Create a Builder for FailOnTimeout.

Create a Builder for FailOnTimeout.
Delete all constructors created since 4.11 was released.

We earlier made an explicit decision to make zero mean "never timeout". See this text in the Javadoc for the `Timeout` rule:

*A specified timeout of 0 will be interpreted as not set, however tests will still launch from separate threads. This can be useful for disabling timeouts in environments where they are dynamically set based on some property.*

If I did what you proposed, I would have to put special case code for handling zero in both the `Timeout` rule (for all time) and in `FailOnTimeout` (until we can delete the deprecated constructor).