Support for a url source in file provisioner

Added support for a url source to be used in file provisioner, also provided provisioners with access to packer.Cache. When a url source is provided, a checksum and checksum type will also be required, a description of the download is optional. You can specify a download directory("download_dir") where the file will be downloaded to, from there the provisioner will upload it to its destination. If no download directory is provided, the provisioner will download the file to the packer_cache folder.