[SPARK-3054][STREAMING] Add unit tests for Spark Sink.

This patch adds unit tests for Spark Sink.

It also removes the private[flume] for Spark Sink,
since the sink is instantiated from Flume configuration (looks like this is ignored by reflection which is used by
Flume, but we should still remove it anyway).
Why make one Future, than another Promise + Future combination? Just the single Future is sufficient. Though, I question the use of ExecutionContext, we dont know the # of threads in that context, so not sure what parallelism we achieve here.