Adding Davidson-Fletcher-Powell method

base version, some errors, maybe in matrix multiplication