Add support for custom StreamsUncaughtExceptionHandler in kafka-streams 2.8.0

As described in https://cwiki.apache.org/confluence/display/KAFKA/KIP-671%3A+Introduce+Kafka+Streams+Specific+Uncaught+Exception+Handler the 2.8.0 version of kakfa-streams allows a client to specify what needs to be done when having a failed stream thread (caused by some exception thrown while processing).

To be able to use this, the WrappedStreams constructor needs to be updated in order to call the (new) setUncaughtExceptionHandler() after the kafkaStreams object initialization. As well as remove the current setUncaughtExceptionHandler() method which calls a deprecated method (in kafka-streams 2.8.0)

Without having this option, stream threads can all be DEAD after having a single exception thrown. Or each processor needs to do its own 'try-catch', which is not trivial as a 'peek()' for example has no way of gracefully stopping subsequent processors for example.

Note that when updating to 2.8.0, the 'matching' spring-kafka-test version should be available, as otherwise using a TopologyTestDriver results in missing classes

Edited by Wouter Poncin