[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
I believe that you will have problem with default params when you will try to add another overload to `createStream`. Scala allows only one version of `createStream` with default params. So you will have manually add versions of `createStream` just like you have done for `JavaStreamingContext`.

Also please