Bug 55418: Separate edit updates from template/image updates in job queue

The vast majority of our jobs are caused by template updates. These are
holding back updates triggered by direct page edits, which are more important
for performance. Delayed cache updates after page edits will likely lead to
cache misses when editing those pages. Those can mean a delay of around 20
seconds on large pages, which is a long time to wait before being able to make
an edit.

This patch separates edit updates from dependency change triggered updates.
With separate job runners and the right priorities, large number of template
updates won't hold back edit updates any more.

The old job type is still supported. Template and image updates from old jobs
are however skipped, which should help to drain the job backlog quickly.

During the transition, we will register job runners for all three Parsoid job
types. Once the old job type is drained, the job type and the associated
runners can be removed.

This patch also adds job deduplication, which will reduce the number of
duplicate updates triggered by edits to the same template or file.

Change-Id: I5e43c696a36d455fcd9f279c88826b9f4d9e33fd
Merge "Bug 55418: Separate edit updates from template/image updates in job queue"