Changelog
* Huge refactor of the entire codebase, and numerous architecture improvements.
* Removed the `officialeye analyze` command, replacing its functionality with `officialeye test` and `officialeye run`.
* Simplified the implementation of IO Drivers, and removed the possibility of manually speficying the desired IO driver via the `--io` option, as it is no longer required.
* Implemented the feature class system, that allows grouping of features together in a non-verbose and meaningful way, and which, among other features, supports abstraction and inheritance.
* Removed the possibility of attaching meta values to features, as this has been a bad design choice.
* Implemented the feature interpretation system, allowing one to specify for every individual feature the way in which it is to be intepreted.
* Implemented the mutation system and the ability of adding mutators to feature classes, that get applied before executing the interpretation system.
* The score value is now included into the output of the `officialeye run` command. This value represents the level of confidence in the correctness of the result.
* Fixed incorrect behaviour when a template keypoint required matches, but there were actually no matches whatsoever.
* Added `--show-features` options to the `officialeye test` command, that allows one to specify whether the feature borders are to be visualized or not.
* Added `--hide-features` and `--hide-keypoints` options to the `officialeye show` command.
* Added the possibility of applying mutators to the template image and to the target images.
* Added grayscaling, denoising, and contrast increase mutators.