fix socket logic

The core FSM logic always added an empty frame in front of
every outgoing packet and stripped it from incoming packets.

The correct logic is for REQ and REP sockets to add the empty
frame for outgoing packets and EXPECT an empty first frame on
incoming packets and strip that frame. All other sockets
pass the frames as is.

This fixes #17