socket.io payload decoder support

add method decodePayload() of ElephantIO/Payload.php
add method of Singleton pattern instance

use : 
```php
<?php
// ElephantIo/Payload.php
class Payload
{
    ....
    /**
     * @return Payload
     * Singleton Pattern
     */
    public function getInstance() {
        static $obj = null;
        if ($obj == null) $obj = new Payload();

        return $obj;
    }
    ....
}
?>
```

```php
<?php
$payload = &Payload::getInstance();
$payload->setPayload($encodingPayloadData);
echo $payload->decodePayload()."\n";
?>
```

Yeah, I saw that. But in this case, maybe you should add a verification at the beginning of the function, so that it checks if the payload was not already calculated ?

As I'm not the one who first made this lib (and I'm not the maintainer either), I'm not sure how this class is used. But I think that this class is used once per messages sent.

So, in this case, just a little verification at the beginning like

```php
<?php
class Payload
{
    public function encodePayload()
    {
        if (null !== $this->payload) {
            return;
        }
     
         // ...
    }
}
```

Or something along this idea ? It will then avoid to do all the calculations. But this then condemn the idea to use a `Singleton` pattern on the `Payload`.

I also think this sould be private and then used accordingly by a `getPayload` or something like that. But this should be for a future revamp of everything...