Enhance error handling for the Go client

This PR enhances the Go client error handling by the following:
 - Check if method name is correct -> if not return thrift.WRONG_METHOD_NAME  
 - Check if MessageType is thrift.REPLY or EXCEPTION -> if not return thrift.INVALID_MESSAGE_TYPE_EXCEPTION
 - Checking the sequence id is done before checking the message type

Includes test cases for every error case.