(PUP-3351) Evaluate ENC classes in the correct order

Without this patch classes declared from an ENC are evaluated in the wrong
order.  This is a problem because classes declared without parameters are
evaluated prior to classes with parameters which causes an Error: Duplicate
declaration when the classes with parameters are evaluated.  According to the
code comments for the `evaluate_node_classes` method, the expected behavior is
that classes with an empty set of parameters will not conflict with classes
that have declared parameters.

Note: This should be included as a bug fix in the 3.7.x series because the
actual behavior does not match the expected behavior in 3.7.1.
Correct. This changes the order of evaluation inside the compiler code, which means it will change for all node terminii.