ISPN-4802 Make HotRodConcurrentStartTest more robust

* Since the method starts Hot Rod servers, it should take responsibility to kill them too.
* Increased timeout for creating Hot Rod server.
* Use fork() method so that thread naming is correctly set.
* Finally, use Try() as a cleaner way to deal with failures of either of Hot Rod server startups.
To test with 3 or more servers the pattern matching becomes a burden. One way of avoiding it is to use ```map``` and ```collect```: 

```
val futures: Seq[Future[HotRodServer]] = ...
val results = futures.map(f => Try(Await.result(f, 1 minute)))
val success = results.collect { case Success(s) => s}
val errors = results.collect { case Failure(e) => e}
if (success.isEmpty) {
     // all servers failed, log error...
}
// kill servers that started
success map killServer
// throw error if any
errors map(throw _)
```