Add hierarchical capabilities to the clustering

methods in order to handle multiple levels (or scales).  Each level
contains one or more datasets (or pieces) from which button are created
and clustered.

Issue #8