message: vertexcodec: Fix UBSAN issues
  zigzag8 encoding of a negative integer resulted in shifting a negative
  signed integer left, which is UB in C++. This change rewrites the
  zigzag8 expression to - canonically - do an unsigned left shift and
  arithmetic (signed) right shift instead which avoids the UB and reduces
  the operation count.
diff: @@ -50,12 +50,12 @@ static size_t getVertexBlockSize(size_t vertex_size)
  inline unsigned char zigzag8(unsigned char v)
  {
  - return (v >> 7) | ((v ^ -(v >> 7)) << 1);
  + return (char(v) >> 7) ^ (v << 1);
  }
  inline unsigned char unzigzag8(unsigned char v)
  {
  - return (-(v & 1)) ^ (v >> 1);
  + return -(v & 1) ^ (v >> 1);
  }
  static bool encodeBytesGroupZero(const unsigned char* buffer)
  