Data.List: Add group_by function