GenericSort Generically Sorts Data. User must provide Compare and destroy functions for data to be used. Will sort data from largest to smallest. No duplicates allowed.