added OOB capabilities

As discussed per mail, I tried to add OOB capabilities without breaking either the lib or readability.

I think I’ve succeeded.

PS: really good code, a pleasure to work with. Finding the places to extend was surprisingly easy, and in fact, implementing oobSend without oobMessage or callbacks ran on the first try!

The only thing I didn’t test was running it in DEBUG mode, sorry. This might create the problem I talk about in the line comment.