CV skeleton works

Still need a way to specify abstract tiers (CV skeleton is a preset
option)
Subsetting corpora works now!
Fix for keeping attributes between objects

Corpus attributes versus word descriptors
Merge pull request #217 from kchall/subcorpora

Resolves #69
Resolves #169

Changes include:
Corpus objects have a list of attributes that have meta data their word objects.  Attributes can be `numeric`, `factor`, `tier` or `spelling`.  `numeric` attributes have a `range` property that gives their minimum and maximum values, and `factor` attributes give a list of levels as their `range`.  Neither `tier` nor `spelling` attributes return ranges.

With these Attributes, filters can be constructed to subset Corpus objects.  Corpus objects themselves have a `subset` function that takes a list of filters, but it could probably be separated out from it.  Filters still need a bit of work, at the moment they're tuples of 2 or 3 elements depending on the attribute type.  When filtering `factor` attributes, the filters are 2 elements, with the first being the attribute object and the second being the levels to be included.  When filtering `numeric` attributes, the filters are 3 elements, with the first being the attribute object, the second the comparison type (==, >=, <, etc), and the third element the threshold.

Functions for adding abstract tiers were added, where the argument they take is a dictionary with keys corresponding to abstract symbols (like 'C' or 'V' or anything really), and the values as the segment symbols corresponding to those.  Needs some error checking still to ensure that the abstract symbols have distinct sets of segment symbols to avoid confusion.