ReplacementContext (was PrintContext) is produced by the LHS parser
and printer, and consumed by the RHS parser and printer; it ensures
that the mapping between names and pointers is consistent across
multiple conversions between Souper's internal and serialized
representations

also, making print names for vars optional and off by default