Making VectorBuilder work properly with varargs (Int, V)* 

(or Seq[(Int, V)]).

The call to `update` in `r(i) = v` wasn't actually adding the indices/values to the builder since for a new builder `offset` is always < `used`. This seems to be the desired behaviour since `update` should in fact amend the value for a given index while `add` adds new (Int, V) tuples. 

This fixes the method to use `r.add(i, v)` instead.

Test code:
```
    println(VectorBuilder(10)((1, 2.0), (3, 5.0), (7, 3.2)).toSparseVector)
    println()
    val b = VectorBuilder.zeros[Double](10)
    Seq((1, 2.0), (3, 5.0), (7, 3.2)).foreach{ case(i, v) => b.add(i, v) }
    println(b.toSparseVector)
```

Results prior to PR: 
```
SparseVector()

SparseVector((1,2.0), (3,5.0), (7,3.2))
```

Results after PR:
```
SparseVector((1,2.0), (3,5.0), (7,3.2))

SparseVector((1,2.0), (3,5.0), (7,3.2))
```