[SPARK-3760] [STREAMING] Add Twitter4j FilterQuery to spark streaming twitter API

TwitterUtils.createStream(...) allows users to specify keywords that restrict the tweets that are returned. However FilterQuery from Twitter4j has a bunch of other options including location that was asked in SPARK-2788. Best solution will be add alternative createStream method with FilterQuery as argument instead of keywords.

This PR is a replacement for #1717 and #2098

For new method I can't use "createStream" name, I want to keep public API stable & binary compatible and introducing new method with same name cause scalac compilation issue: multiple overloaded alternatives of createStream define default arguments
Why create a `createQueryStream` and not `createStream`? Its better to keep things consistent by naming it `createStream`