[!!!][FEATURE] Refactoring to include Non linear fitting engine

Included is now an AbstractFittingEngine, and the linear and non-linear
fitting engines are splitted into different classes.

The fitting engines are now state-aware and are initialized with the data
and the funtion to fit for. After that a call to fit() is needed, and
afterwards internal varialbes like chi-squared can be retrieved.

Also contains som bugfixes for GaussJordan and LeastSquares figure of merit.

Updated readme to include examples