Add timeout to salt.state.cmd.* functions

Add ability to specify timeouts for arbitrary commands.
If timeout is reached, subprocess is sent sigterm, and later sigkill
if it still exists. Issue #5322
Merge branch 'timeout-for-run-command' of git://github.com/hulu/salt into hulu-timeout-for-run-command

Conflicts:
	salt/states/cmd.py