Refactor to include less stuff directly in ActiveJob::Retry but use Retrier classes

Refactor all the things! This should make it epicly easy to customise.
Do you need this line? Would be nice to restructure `retry_exceptions` and `fatal_exceptions` so they're always arrays.