Move test files. Update import statements to use 'sil' package.
Add 'id' attribute to struct objects.
Add __str__ methods. Also, restore old test.
Add logic for pretty printing.

In test cases, compare programs by pretty printing them. Remove
__eq__ and __ne__ methods from peg structs (since they didn't
actually work correctly with the __hash__ method).
Require an index to be a named value.
Don't remove load instructions.
Add new module for assigning unique names.

Also, add a Program class for storing useful data about the program.
Update transforms to use new Program class.
Remove 'id' attribute from struct objects.
Give each class a unique name for its self-reference.
Start refactoring type assignments (work in progress).
Rename "ValueSummary" to "InstanceSummary".
Restore original names to type assignments.
Move all the passes into one package.
Add namedtuple for recording errors.
Check for reserved names.
Add comments.
Fix typo.
Start summarizing load and store targets (work in progress).
Resolve aliases.