parse the failed jobs in stream

one of the big issues today with er is the amount the there is
coupling between the bot and the classifier about knowing when
jobs are ready. The impact of this is that we are often
incorrectly determining when jobs are ready, because we have this
small set of files we test for, that aren't right for various
jobs.

This is the beginning of decoupling that. By parsing the job names
that have failed in the jenkins failure message we can move all
the readiness checking into the Stream.

This commit adds the parsing and the unit tests, though it doesn't
actually change behavior to use it yet (next patch).

Change-Id: I54ffa3495a36c2d61b1824794a672c8f5552df54
moving readiness checks into stream

this changes the interface to move the readiness check out of
the classifier and into the stream object. This massively
simplifies the logic connecting these pieces, as classifier is
now just a thin wrapper to elastic search.

This also adds unit testing for the stream processing through the
creation of a fake_gerrit mock class. That lets us run gerrit
event interactions in a sane way.

It also drops all the unit testing for the classifier which is now
largely useless, because all it tests is we can execute a for loop.

Change-Id: I1971c121276412e31f01eb5680b9c41fc7e442d3
refactor bot to be based on argparse

this makes the bot based on argparse, and provides a tox job that
makes running the bot in test mode a little more sane. It also
provides for a new '-n' nocomment item so you can run the bot
and not be worried that it will report to gerrit with findings.

Change-Id: If9d6a7e72dd8d9338f2dd3283cf9a761488122de
fix bot to actually use super()

there was total craziness in not just using a super upcall on
initializing the bot. Remove that.

Change-Id: I888257a4b41b65220b7520ba53b0753850b30dfd
Merge "parse the failed jobs in stream"
Merge "moving readiness checks into stream"
Merge "refactor bot to be based on argparse"
Merge "fix bot to actually use super()"