func NewServer(addr string, defaultPort uint16, opts ...grpc.ServerOption) *Server {
	return &Server{addr, defaultPort, opts}
}
NewServer creates a gRPC based function dispatcher
package grpc
import (
	"context"
	"crypto/tls"
	"crypto/x509"
	"encoding/json"
	"errors"
	"fmt"
	"io"
	"io/ioutil"
	"net"
	"net/url"
	"strconv"
	"time"
	log "github.com/Sirupsen/logrus"
	"github.com/trusch/btrfaas/fgateway/forwarder"
	"github.com/trusch/btrfaas/fgateway/metrics"
	btrfaasgrpc "github.com/trusch/btrfaas/grpc"
	"google.golang.org/grpc"
	"google.golang.org/grpc/credentials"
	"google.golang.org/grpc/metadata"
)
type Server struct {
	addr        string
	defaultPort uint16
	grpcOpts    []grpc.ServerOption
}