Fix multiple rip region bug; use X marker for plot
fileIO.flist returns sorted list; decimal forces ok in filename matching
Refactor collapse and aggregate in experiment.List

Also, fix saving/pickling of experiments.

aggregate() is now class method on AbstractData and allows sorting
by specific fields. This was needed because fitting to pulling
data that was simply appended would break curve fitting using masks
which are necessary for global FEC rip fits using curvefit.fitWLC_masks.

List.collapse() calls aggregate which ignores metadata since it could
all be different. It never happened that I had to check the metadata
of the aggregate because it usually only makes sense in the context
of an individual pull.
Refactor fplot.PlotStyle and plot() style usage

PlotStyle object encapsulates a style dictionary which ensures
only styles that fplot.plot knows about can be set. Also uses
sensible defaults and abstracts color cycling inside of PlotStyle()
using module level function next_color_in_cycle.

Examples:

plot( ... , ... , style=PlotStyle(donor='.') )

plot( ... , ... , style=PlotStyle(color='k', donor='b-', acceptor='r-') )

plot( ... , ... , style='-' )

plot( ... , ... , style=PlotStyle(color='g') )

plot( ... , ... , style=PlotStyle(color='auto') )
Removing experiment.List.aggregate()
fplot.plot FRET ylim = (-0.1, 1.1)