Add builder for Timeout rule. Make Timeout rule designed for extension.

Sorry, my formatting settings are set for Google style, which uses a two-space indent. I think I fixed the formatting issues