Protobuf codec support for UDP

Since UDP is it's own special thing, we cannot use the default protobuf decoder and encoders.  So I wrote new UDP-oriented codec classes.