[SPARK-4688] Have a single shared network timeout in Spark

[SPARK-4688] Have a single shared network timeout in Spark
How about 
```scala
```scala
val slaveTimeout = {
  val defaultMs = math.max(conf.getInt("spark.executor.heartbeatInterval", 10000) * 3, 45000)
  val networkTimeout = conf.getInt("spark.network.timeout", defaultMs / 1000)
  conf.getLong("spark.storage.blockManagerSlaveTimeoutMs", networkTimeout)
}
```

I'm still not sure why we cap it to 45000 by default ...