MINOR: tools: add a function varint_bytes() to report the size of a varint

It will sometimes be useful to encode varints to know the output size in
advance. Two versions are provided, one inline using a switch/case construct
which will be trivial for use with constants (and will be very fast albeit
huge) and one function iterating on the number which is 5 times smaller,
for use with variables.
diff --git a/include/common/standard.h b/include/common/standard.h
index f0167d3..0b8a327 100644
--- a/include/common/standard.h
+++ b/include/common/standard.h
@@ -201,6 +201,27 @@
 	return ret;
 }
 
+/* returns the number of bytes needed to encode <v> as a varint. Be careful, use
+ * it only with constants as it generates a large code (typ. 180 bytes). Use the
+ * varint_bytes() version instead in case of doubt.
+ */
+int varint_bytes(uint64_t v);
+static inline int __varint_bytes(uint64_t v)
+{
+	switch (v) {
+	case 0x0000000000000000 ... 0x00000000000000ef: return 1;
+	case 0x00000000000000f0 ... 0x00000000000008ef: return 2;
+	case 0x00000000000008f0 ... 0x00000000000408ef: return 3;
+	case 0x00000000000408f0 ... 0x00000000020408ef: return 4;
+	case 0x00000000020408f0 ... 0x00000001020408ef: return 5;
+	case 0x00000001020408f0 ... 0x00000081020408ef: return 6;
+	case 0x00000081020408f0 ... 0x00004081020408ef: return 7;
+	case 0x00004081020408f0 ... 0x00204081020408ef: return 8;
+	case 0x00204081020408f0 ... 0x10204081020408ef: return 9;
+	default: return 10;
+	}
+}
+
 /* Encode the integer <i> into a varint (variable-length integer). The encoded
  * value is copied in <*buf>. Here is the encoding format:
  *