add support for custom handshakes
also support mesh-wide custom handshakes
fix the custom handshakes
basic custom handshake test