refactor of hideci for readability and modularity

This is a refactors the hideci code into much smaller functions,
making the whole thing a bit more readable for fixing this going
forward. This was done in order to add a couple of new features. The
smaller functions should also make this code much easier to review.

After the refactor we now do a top down parsing of all comments in a
review, classifying them as 'is_ci' and 'is_trusted_ci' so that we can
more easily compute the results we want going forward.

In the process a few additional features were added.

1) CI results are only shown for the latest patch set, even if no CI
system has reported on it. This is accomplished via
ci_latest_patchset.

2) If CI system is in merge conflict, that's displayed in the results
box.

3) Test results records are lifted in total to the test results
display panel, and each set of test results includes the date that we
got it from. This means that for patches that get 'rechecked' a lot,
you'll see the whole history of test results on current patch. You
will also be able to quickly realize that the current test results are
older than the last recheck comment.

The UX for part 3 is different, and may need tweaking going forward,
however the merge of results from different runs was creating a lot of
confusion to reviewers, so this errors on the side of more clarity.

Because of the largely inconvenient workflow for development (the fact
that you basically need to copy / paste function definitions into
chrome dev console) this isn't broken up as smaller patches. This
should, hopefully, make future patches much easier on this code
though.

Change-Id: I3f128a449756fd6988f3810863cd1d49c476b0dd
Merge "refactor of hideci for readability and modularity"