Fix failed-task retrying.

Failed tasks were being recorded by converting their args
and kwargs to JSON. When the args contained a QueryDict, it
was serialized as a dict of lists. We now deconvert that when
we see it. We also now only work with dicts since we don't need
multivalue dicts.
Improve failed task admin.

* Add search by task name or exception
* Add date hierarchy drill-down
* Add filtering by task name