172 vector function

Preliminary code review of new functions. Tests will be added once I know the implementation is correct.
I see what you mean. We have a function `updateRow` that should take a `VectorFunction`, but it calls `update` that takes `MatrixFunction`. You need some sort of converters between vector function and matrix function. In my head it looks like following:

```java
class RowVectorToMatrixFunction(VectorFunction underlying) implements MatrixFunction {
  double evaluate(int i, int j, double value) {
     return underlying.evaluate(j, value);
  }
}

class ColumnVectorToMatrixFunction(VectorFunction underlying) implements MatrixFunction

@Override
public void updateRow(int i, VectorFunction function) {
    Matrix function underlying = new RowVectorToMatrixFunction(function);
    for (int j = 0; j < columns; j++) {
        update(i, j, underlying);
    }
}
```

We have two converters here `RowVectorToMatrixFunction` that only consider to work with row-vector (only care about j-index) and an opposite case `ColumnVectorToMatrixFunction`.