Add run_benchmark worker script and add more utils

Description

Also made the following improvements:
* Modified util.ExecuteCmd to return an error when the command fails. It is upto the caller whether or not they care about the error.
* Changed glog.Fatal to glog.Error because deferred cleanup calls do not get executed during glog.Fatal.
* Started working on e2e tests in the Makefile.

BUG=skia:3163

Review URL: https://codereview.chromium.org/791743002
This ignores empty traces when using dump/md5 in the tiletool thus making it able to compare observed traces even if the total number of traces differs.

It also adds the ability to specify a directory where downloaded files are cached (gold ingester only).
Currently they are just dump to investigate missing files.
This will either be removed in the future or extended to be a real cache.

One bug fix introduced by
https://codereview.chromium.org/786953004/

BUG=skia:

Review URL: https://codereview.chromium.org/794783002