Tree Makeover

This is a huge changeset, but it's the result of only two fundamental changes:

1. Switch interpretations to use a different format; 1005-Interpretations-32(a)(3)(v)-3 is now 1005-32-a-3-v-Interp-3
2. Use a Node class in place of a simple dictionary for representing tree nodes

All of the other changes spin off from there, ultimately resulting in more structured data and around 200 fewer lines of code.

Let me know if there are questions.