update getSupraFromString to work with identical instances
update getSupraFromString to work with identical instances
refactor LatticeTest

Instead of using reflection and a weird options array, use a simple
factory to parameterize the test. Reformat the individual supracontext
tests so that they are easier to read, with the supracontext strings
next to eachother so they can be read all at once. Leave a little to-do
note, as well, since this can be cleaned-up further.
squash testUtil edits later
combine chapter 3 train/test, rework lattice test

Combine chapter 3 train and test files into one and simply select
item 0 as the test item. Refactor `LatticeTest`, now that all data
files are combined train/test. `LatticeTest` is much easier to follow
now. Update all files that use chapter 3 data.
fix cleanSupra() timing in distributed lattice

This is the same fix as in 510df2c6fb587e, but for the distributed
lattice. All tests pass now!
slight cleanups

Get rid of commented code that was bothering me for a long time. The
commented code made me wonder if the `Lattice` implementations were not
done, but it seems to have been just a relic of copying from the
original amc.c file. Add an `assert` in the distributed implementation
to match the basic one, and add another comment to make it clearer what
the expectation before entering that block is (and why the assert
asserts what it asserts).
begin Label refactoring

Create a new `Label` interface and a new `BitSetLabel` implementation
of it. Rename the old `Label` class to `IntLabel`. The next step will
be to have it implement `Label` as well. No tests yet.
Begin refactoring Labeler

Change `Labeler` into an abstract class, to be used as a factory later)
and create a new `BitSetLabeler` which implements it and creates
`BitSetLabel`s. Needs tests and unification with `IntLabeler`, which
was renamed from `Labeler`.
add masking functionality to Labeler

Get rid of the idea of a `Mask` object, which was problematice for
encapsulation. Instead, allow the `Labeler`s to `partition` `Label`
objects that they know how to deal with. Implent it in the
`BitSetLabeler`, but don't unify it with `IntLabeler` or test it yet.