ActiveJob: allow empty queue names

As discussed in #17195, Que uses blank queue names by default for
performance reasons. At the very least, ActiveJob should allow users to
choose "" as their queue name. This adds a failing test to show that
this doesn't currently work, and then adds a patch to allow this behavior.
Ah, I just realized it's being stringified by the `join()` later in the method anyway. Does this work?

```ruby
      def queue_name_from_part(part_name) #:nodoc:
        queue_name = part_name || default_queue_name
        name_parts = [queue_name_prefix.presence, queue_name]
        name_parts.compact.join('_')
      end
```

I could combine the first two lines but it would hurt readability a bit.