Added timeout and docker file directory

I added the option of passing a timeout parameter to the shell out method to prevent an erroneous failure due to long-running image builds. I also added the option to pass the directory that contains the dockerfile so that the ADD parameter in the dockerfile can be supported.