I took a serious rebase and some hand-holding but I was able to land all my changes on to yours. Couple of things
As part of the rebase I opted to NOT convert to tabs (I excluded that commit). I also added a Vim modeline at the bottom so other vim users will contribute the same way
Line #128 and #129 of Server.php I changed slighly to reflect the error level of the calling script. Not 100% if that's what we want. I'm open for discussion on that.
I took a serious rebase and some hand-holding but I was able to land all my changes on to yours. Couple of things
Take a look and let me know what you think.