This change allows you to use the "formatted" index from your formatter. This is helpful if you want to create a formatter that would include *some* context information beyond the message itself.
Since the default `LineFormatter` would be too verbose, I added a `useFormattedMessage()` method that accepts a boolean and would turn the use of the formatter on or off. This way, if you want to use a custom formatter, you can enable the functionality...but it will still work the same out of the box otherwise with just the message getting sent to Pushover.
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.