Major Revision

Add ee_engine.cpp,  solver.cpp ... etc Finish main pipelines including objective function except workload_manager. I was a bit confused about the new usage of dataset passing for multi-thread in categories_ of solver. You may present your idea by writing the gradient descend part.