Review basic abstractions: Graph/OptGraph/Pipeline/Individual & GraphAdapter
Created by: gkirgizov
Motivations:
- Define clear base interfaces for easy extension of Optimiser onto new problem domains
- Simplify GraphAdapter functionality to avoid subtle bugs with lost fields during .adapt/.restore
- These abstractions must define clear separation between levels of abstract optimisation and specific problem domain. Currently this separation is not clear and in some places tied to Fedot specific of ML domain.
Related to #608 (closed).
Sub-tasks: