Added List filtering and data aggregation

API now has has(), not_has(), filter(), aggregate(), and collapse().

aggregate() will append either pull or fret data together and
return the appended datatype (TrapData or FretData).

collapse() uses this to create a new experiment file with the
aggregate data for easier fitting and manipulation.

List.plotall() is now better behaved for all common use cases.