Bug 1077136 - Queue missing resultsets2

**READY FOR MERGE**

Fixes:
1. if a resultset was ingested, without its corresponding revision, this will fix it
2. if a job shows up in pending/running/builds4hr and we don't have a resultset for it, we schedule ingesting it
3. In ``2`` above, if we ask ``json-pushes`` for a resulset(push) and get a 404, then there's an error with the job.  It has the wrong revision, possibly from a different repo (like mozilla-central l10n tests sometimes do).  But we don't want to keep trying to re-ingest the same push that we'll never find.  So we ingest it as an ``onhold`` resultset.  This way the UI won't fetch it.
4. I had to modify the resultset lookup in ``jobs.py`` to get the ``onhold`` resultsets so we will know we don't need to re-ingest it, since we already have it.


Also:
1. Breakout the ``etl/tasks.py`` file into separate files in the ``etl/tasks`` folder.
2. removes some dead socket.io code

this can moved to the outer function or removed entirely