fn read_varu32(data: &[u8]) -> (u32, usize)
Read an unsigned 32-bit varint. Also, return the number of bytes read.
https://developers.google.com/protocol-buffers/docs/encoding#varints