ignore original values when comparing environments
As information moves around in the CTL, the original fields of expression metavariable values break equality tests. Use a more refined equality test that takes the metavariable type into account.
The test case takes a long time (perhaps infinite) without using eq_sub to compare environments in ctl_engine, due to the "original" code (containing position information) recorded in expression metavariables.
Based on a more complex test case provided by Markus Elfring.