safe periodic job cleanup
safe periodic job cleanup

closes FOO-1204
refs FOO-1278

(also brings in ability to use
 Delayed::RetriableError)

TEST PLAN:
  1) kill a periodic job so it is abandoned.
  2) force another abandoned job into the db with the same tag
     as the periodic cleanup job.
  3) periodic cleanup job will still run, and clear
     out it's previous phantom self.

Change-Id: Ic351e91c5c31ec503e6af218fba0543f4acd7df6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/254532
Tested-by: Service Cloud Jenkins <9144042a601061f88f1e1d7a1753ea3e2972119d@instructure.com>
Reviewed-by: Cody Cutrer <c4fe2b1d90ef8f2548c8aeabfa633434316f0305@instructure.com>
QA-Review: Cody Cutrer <c4fe2b1d90ef8f2548c8aeabfa633434316f0305@instructure.com>
Product-Review: Cody Cutrer <c4fe2b1d90ef8f2548c8aeabfa633434316f0305@instructure.com>

sfu/canvas-lms,sfu/canvas-lms,sfu/canvas-lms,sfu/canvas-lms,sfu/canvas-lms,sfu/canvas-lms,sfu/canvas-lms