added more capabilities to run_command

run_command now always explicitly specifies individual arguments, instead
of allowing you to parse them using the shell. It also has several new
features for I/O redirection and timeouts.
added fancy progress bar

It uses the Python progressbar library.