Allow to set a default queue name for custom jobs

I found it useful to create a custom job that is always pushed to the same queue when I enqueue it from different places in the code.
This pull request adds this support and makes sure that the queue precedence is maintained as follows:
1.  THe queue argument being passed in the options.
2.  The queue name of the payload object (If exists).
3.  The default queue name (Delayed::Worker.default_queue_name).