Allow more complex job types

Allow more complex job types by allowing blocks to be passed to `job_type` resp. `Whenever::Job.new`.

I came up with this because I needed to run multiple rake tasks in order and only if the previous command exited successfully. This would be possible with my PR:

```ruby
job_type :chained_rake do |options|
  if options[:task] && !options[:task].empty?
    taskcmds = options[:task].map { |task| "bundle exec rake #{task} :output" }
    "cd :path && export RAILS_ENV=:environment && " << taskcmds.join(" && ")
  end
end

every 1.day, at: "5:00 am" do
  chained_rake [
    "bt:wvoip",
    "invoices:create",
    "invoices:pdf",
    "invoices:export",
    "invoices:export_deliver",
  ]
end
```

What do you think?