ping/pong and unknown opcodes support

um... I dunno if it's ok to handle it this way but well. Seems ok to me. I'm not sure if ping/pong should be merged but as I'm personally using pong to determine timout for next ping and for ping I'm simply replying with pong I decided that probably it's more convenient to separate them.