MINOR: standard: The parse_binary() returns the length consumed and his documentation is updated

Actually the values returned by this function is never used. All the
callers just check if the resultat is non-zero. Before this patch, the
function returns the length of the produced content. This value is not
useful because is returned twice: the first time in the return value and
the second time in the <binstrlen> argument. Now the function returns
the number of bytes consumed from <source>.
diff --git a/src/standard.c b/src/standard.c
index 3ed1e2a..adaba75 100644
--- a/src/standard.c
+++ b/src/standard.c
@@ -1360,7 +1360,7 @@
  * Parse binary string written in hexadecimal (source) and store the decoded
  * result into binstr and set binstrlen to the lengh of binstr. Memory for
  * binstr is allocated by the function. In case of error, returns 0 with an
- * error message in err.
+ * error message in err. In succes case, it returns the consumed length.
  */
 int parse_binary(const char *source, char **binstr, int *binstrlen, char **err)
 {
@@ -1403,7 +1403,7 @@
 			goto bad_input;
 		(*binstr)[j++] =  (hex2i(p[i-2]) << 4) + hex2i(p[i-1]);
 	}
-	return len;
+	return len << 1;
 
 bad_input:
 	memprintf(err, "an hex digit is expected (found '%c')", p[i-1]);