Ok, so I think my original plan of doing the term/syntax unification right now is not going to work. At least not the approach of doing it all in one big push.
So I'm going to break it down into smaller refactorings. This PR will just decouple the reader from syntax/terms.
It also probably isn't worth holding up 3.0 to wait for the unification so I'll start cleaning up things to get that out the door.