refactor task hierarchy and introduce unsupervised and cluster task
start cluster learners
fix a few minor things for clustering
Merge branch 'clustering'