Add .zero() and .assign(x) to the vector structure
Optimisation of the line search method

In particular avoid allocating new memory for each linea search step
and return the new control vector as part of the line search function.