* 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
No significant changes applied.
* function syntax has been changed to another one, any function may be called
by using the following construction:
$aw_function_name<some args here if any>{{function body if any}}
* rewrite travis.yml