Api refactoring
Created by: v1docq
In this PR, the structure of the module's API was redesigned. Auxiliary classes (ApiDataHelper, etc.) were implemented, which are combined using the Facade pattern. Thus, work with input data, work with metrics, work with initial approximations, and work with the compositor were divided. The DataDefiner class is implemented, which allows the API to work with input of almost any type.