add timeout option to commands

This adds a timeout option to commands so that the user-agent timeout can be
specified by the user.