Feature request: a better Ping/Pong support.
As far as I know ping/pong exists to solve 3 problems; (1) preventing firewalls from closing the connection, (2) letting the _client_ know that the connection is still open, (3) letting the _server_ know that the connection is still open. Current implementation solves first 2 problems but not the last one. The server can not detect when a connection was ungracefully closed, i.e. because of power loss. 
Proposed solution:
Adding a new interface **PingInterface.php**

```
<?php
namespace Ratchet;

interface PingInterface {
    function onPing(ConnectionInterface $conn);
}
```
in **RFC6455.php** after line 92 add:

```
if ($from->WebSocket->coalescedCallback instanceof PingInterface) {
    $from->WebSocket->coalescedCallback->isPingImplemented = true;
}
else {
    $from->WebSocket->coalescedCallback->isPingImplemented = false;
}
```
in **RFC6455.php** after line 162 add:
```
if ($from->WebSocket->coalescedCallback->isPingImplemented) {
   $from->WebSocket->coalescedCallback->onPing($from);
}
```

**Usage:**
My app class will implement PingInterface.
Then in my app class in onOpen and onPing methods I can update some variable with current time:
```
$conn->lastPingTime = time()
```
Then I can add a periodic timer to check all connection when they pinged last time and close those connections which stopped pinging. Or I can add a timer to each connection to close the connection after some time and when I receive a ping I will renew the timer.
This change does not break BC.