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.