The construct accepts a string or an array of user ids to keep backward compatibility.
In case of an array, a message is built and send for each of the users.
Solves #146: When sending messages in rapid succession to pushover.net only the first one is sent.
The SSL option is needed when sending messages to users that are not the pushover.net app owner; pushover.net doesn't accept those messages over plain HTTP.
Before, the write method would alter the $record array and then call parent::write().
Now the method builds the string which should be written into the stream and then does it himself.
I had to change two methods to be protected so the PushoverHandler could call them.
The PushoverHandler sends messages to api.pushover.net. The class depends on the SocketHandler
I modified the SocketHandler to make it possible to change the port for subclasses (Pushover needs the explicit port 80 to work)
The tests only see if the content sent to the api is correct. The rest should be already covered in the tests for the Sockets.