Introduction of a feature vector interface

Implementations of this interface are meant to be the return value of every
feature factory. Every model or algorithm thereof should only rely upon that
interface.
Moved every feature factory to FeatureVector

Tests not currently passing.
TODO: Heavily test the models and any use of the feature vectors.
Moved most Models to FeatureVector

Still stuff do not work that correctly. Still need to move the Clustering
namespace to FeatureVector and still have to move the Lda model to
FeatureVector.
Migrate the similarity metrics to FeatureVector

Some similarity metrics do not enforce the use of FeatureVector so it is
not required by the interface but most do require it and enforce it by
throwing InvalidArgument exceptions in other cases.
Migrate the clustering tests to FeatureVector
Migrate Lda to FeatureVector
Merge branch 'feature-vector' into develop
Apply new style configuration

php-cs-fixer MUST now be used before each commit (preferably in a
pre-commit script) and the configuration in config.php_cs MUST be used.
Move phpunit.xml to root directory