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.
why is `&&part_name.tos` condition needed here? What objects do you expect which are not `nil`/`false`, but which return `nil`/`false` when `.to_s` is called on them?