Add a timeout option for long-running processes, namely knife commands.

I added a --timeout/-T option to allow users to specify their own timeout for command invocations.

This can help if you're doing slow operations and using --parallel which seems to not push back to stdout regularly, which then triggers the timeout.