Внес асинхронный метод запроса для PUSHей.

Сделал асинхронный метод запроса для PUSH методов. Пушатся, в текущей версии только данные о просмотрах и действиях. При этом назад, по сути, они ни чего получать не должны. Статусы SUCSESS или ERROR нужно отслеживать только на стадии дебага. Это значительно ускоряет работу.

Вот сравнительная статистика:

Среднее время выполнения на соккетах 0.106819426537 (Max:0.253561973572, Min:0.0782730579376) секунд. 1000 повторений
Среднее время выполнения на cURL 0.522551778316 (Max:3.79884195328, Min:0.281471014023) секунд. 1000 повторений

Сами видите, значительную выгоду в использовании соккетов.

Тем не менее, в целях первоначальной отладки, я внес в конструктор 3й параметр $debug и создал соответствующее свойство класса, установив который в TRUE, включается старый (cURL) метод отправки запросов, который получает ответ сервера.

Было бы неплохо протестировать на соккетах и остальные методы, которые получают ответы сервера, но этим, возможно займусь в другой раз.



PS. Снова хотел внести в конструктор и метод генерации SSID работу куков, но НЕ стал. Не понимаю, чем они могут помешать мобильному приложению... 
Куки же не какой то обязательный атрибут. Если приложение передает их скрипту - хорошо, пользуемся, если нет, то, по той причине, что API получит пустую куку, используем генерацию SSID или передаем SSID вручную через конструктор.
Кстати, в вашем же комментарии к конструктору было написано, что он проверяет куки, что в коде не реализовано. 
Я комментарий тоже почистил, но, на вашем месте, подумал бы вернуть куку. Лично я в своей версии скрипта ее использую.



PPS. Извините за возможные доп. нагрузки на ваши сервера в процессе отладки скрипта и при проведении тестов производительности. :)
Merge pull request #3 from rame0/patch-1

Внес асинхронный метод запроса для PUSHей.
Removed unsupported "rate" event
Merge pull request #1 from rees46/master

From forked source