Term etc rewrite - fixed this time

This is the second time I've merged this branch. The first time it was premature and then I deleted the branch. Alas, repercussions were more than anticipated, and Java's "helpful" "dynamic typing" when it comes to objects and strings kept me from finding them (Java allows you to pass an Object when a String is expected). Additionally, I had multiple bugs in Term.getAsString(). It's now working though. So excited! :smiley: