[SPARK-3912][Streaming] Fixed flakyFlumeStreamSuite

@harishreedharan @pwendell 
See JIRA for diagnosis of the problem 
https://issues.apache.org/jira/browse/SPARK-3912

The solution was to reimplement it. 
1. Find a free port (by binding and releasing a server-scoket), and then use that port
2. Remove thread.sleep()s, instead repeatedly try to create a sender and send data and check whether data was sent. Use eventually() to minimize waiting time.
3. Check whether all the data was received, without caring about batches.


Because I found that a lot of time the test was failing because of the uncertainty on when the Flume receiver is ready to receive the new connection. Even after the connection gets accepted, sending data does not return Status.OK. I am not sure what is the reason behind this but this seems like a fairly robust way to send all the data once in a single shot.