Reimplement Sidekiq worker

This better integrates various Sidekiq features into AJ jobs.

Things like the JID will be set as expected and the user can use `sidekiq_options` in AJ::Base subclasses as usual to configure various Sidekiq features:

```ruby
class MyJob < ActiveJob::Base
  sidekiq_options retry: 5, dead: false

  def perform(...)
  end
end
```