Implement new protocol using gRPC
This merge implements a new network protocol using the gRPC library. With it the communication should be more stable and less error prone. However, this also breaks backwards compatible for the network communication. On the other hand, native implementations for many languages can be generated using this implementation.