Create variant classes with different sort subroutines.

Horribly hackish for the moment.  Should use something
along the lines of role application or Package::Variant.