public final int readVarLengthSigned() {
        final int v = readVarLengthUnsigned();
        return (v & 1) == 0 ? v >> 1 : -(v >> 1);
    }
Read a size value and return a pointer to the end of a data section of that size

@return the pointer to the first byte after that section
main/src/main/java/cgeo/geocaching/brouter/util/ByteDataReader.java