Add Timeout to Task; Create local task dir

The Task object now knows how to create a local task directory.  The
local task directory's name is the Task ID, and the directory contains a
script file (whose name contains both the task ID and the script name)
and any file dependencies (for that script to run).

Soon, the local task directory will be copied over to the target host
and executed.