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";
?>
```

I'm asking, because there is a place where `setMask(true)` is used, and also in the `setMask` method, if `mask == true` (not a strict comparision), a `maskKey` is generated... And as `1` can be interpreted as `true` or `1`, hence my question.

So, here, it **should** be an integer ? So replacing this with `mask === 1` should be fine ?