This changes how ingestion fetches data and extends the tiletool. In particular:

- Ingester now loads result files relative to the latest commit.

- What is ingested is configured by specifying a minimum number of commits we want and how far back (days) we want to cover.

- Downloaded files are cached and not ingested anymore if
  they have been ingested before.

- The tiletool works for perf as well as gold data.

BUG=skia:2930

Review URL: https://codereview.chromium.org/805803004
Updates to CommitCache

- Serialize to file. This dramatically decreases load time after the
  first run.
- Add (not yet used) build data for each commit. Later we can include
  more metadata, like whether the commit was detected to be "bad",
  golden/perf data, comments, etc etc.
- Some thread safety fixes.

BUG=skia:3125

Review URL: https://codereview.chromium.org/816763002
Adjusted flags in ingest_init

BUG=skia:
TBR=jcgregorio

Review URL: https://codereview.chromium.org/813803003
Add .catch clause to alert and commit loading

Should prevent failure to reload when something goes wrong.

BUG=skia:

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