Added caching to downloads.  Algorithm:  Checks for existing file in the CACHE_DIR, if one exists it compares sha1 sums to a known good sum. If it matches then it skips the download.  Otherwise it'll download again.
Added path to temporary directory
Added a way to dynamically get the path to the build pack