Forcibly disconnect a `Spark` if no data is received from the client within a given timeout

As discussed on IRC this should fix #138.
It is possible to disable the `timeout` by passing `false` or something for which `typeof !== 'number'`.
Client `ping` is set subtracting 10 seconds from the value of the `timeout`. This should be enough to handle a reasonable latency.
Tomorrow i will work on a test for this. A very simple one could be a client with a `ping` value higher than the `timeout`.
It also need a very little documentation about the ability for developers to disable or customize the `timeout`.