Ward hierarchical clustering

Adds a new class with a hierarchical version of Ward Clustering.  It returns a list of clusters and is useful for creating treemaps.

Includes a test file for the new class.  All tests pass except the 3 which are also failing on master (`test_eval(HyperpipesTest)`, `test_get_rules(HyperpipesTest)`, and `test_eval(MultilayerPerceptronTest)`)