Broke up Thesaurus

This class was used to store both neighbour lists and feature lists. With
so much functionality crammed into a single class problems would often
arise.