add lambda to math and use it to rewrite function, set
modify geometry implementation for lambda
move the methods about rotation to TransEngine
remove some methods in NumberEngine
implement matrix invert
add feild getter to Engine
add engine provider
rename createTransFunc -> getTransFunc in TransEngine
adjust MoveEngine
implement PhysicalPuzzleEngine
add RubiksCube to test and adjust PuzzleEngine for efficiency