Add timeouts and retries to the CLI

This commit removes the unnecessary `block_until_operational` and an old
helper. Now, CLI commands are retried with a sleep interval and a timeout.
This ensures the Chef Client run actually finishes (whereas the current
implementation can run infinitely).