add sidekiq gem and support for background processing