* split formatter into separated singleton classes
* split data engine matchers to classes
* nodiscard attribute for formatter methods
* small refactoring in matchers
* fix codefactor warnings
* fix test building
* massive changes inside includes, drop unused definitions
* rewrite some initialization methods to avoid additional
freeing/allocation
* drop some explicit destructors calls