Fixed error in calculation of negative gradient.

Changed x[i] -> x[j] in calculation of gradient.
Added several stability enhancing methods
Modified file header to point to LICENCE file.
Reduces number of allocated variables.

Reused space from b' vector for solution vector z.
Fixed error related to interpolation.

Interpolation constant was calculated incorrectly as an absolute value
rather than normal (ie don't call fabs).

Cleaned up the interpolation code and fixed another bug in the process
related to binding a variable back to its limit.
GoogleTest unit tests added.

Added unit tests. with problems found from original BVLS fortran
implementation.
Use BLAS for computing negative gradient.

Added dependency on BLAS and used BLAS routines to compute the negative
gradient w = A^T (b - Ax)
Use LAPACK LLS solver.

Changed code to use the LAPACK driver routine dgels to solve the linear
least squares problem.
Added check for too many iterations.

bvls function now returns -1 when solution doesn't converge.  Test is
that we reached the maximum number of iterations rather than exiting
prior to this.
CMake build completed.

Project can now be built using cmake, including a target for building
unit tests.