THRIFT-2497

This change creates client and server for integration tests in test/go
Also several improvements and fixes were implemented:

additions:
+test for client/server with several protocol/transport/ssl combinations
+bin/testclient and bin/testserver
+debug_transport, bin/testclient and bin/testserver use it with --debug_client_protocol and --debug_server_protocol respectively
+command line flag --noinsane for test/cpp/TestClient. Go server does not support TestInsane, so cpp client is compatible with go server

fixes:
separate Listen() and AcceptLoop() instead of Serve() in SimpleServer for better testabiity
if handler function returns any unknown exception, handler closes connection. TODO: simplify generated handler code

noted but not fixed:
listening socket is hanging open after server.Stop() for both ssl and non-ssl server. Not a critical issue, workaround in test using separate ports for every protocol/transport combination