function writeVarint32(val, buf, pos) {
    while (val > 127) {
        buf[pos++] = val & 127 | 128;
        val >>>= 7;
    }
    buf[pos] = val;
}
Pushes a new operation to the queue.
@param {function(Uint8Array, number, *)} fn Function to call
@param {number} len Value byte length
@param {number} val Value to write
@returns {Writer} `this`