[type-visitor] Restore reduced_evaluated after recursive call in eval_id
[type-visitor] Restore reduced_evaluated after recursive call in eval_id

Summary:
Previously, we would visit the evaluated type without modifying the quotient. Afterwards, the quotient would contain new information since it traversed new types. However, we would replace the evaluated map with the same map we had before the call, which erased all of the information we gathered from that traversal. Even though we do traverse again in the call to `super#type_`, at that point we will skip types we've already seen that are stored in the quotient.

Now, we restore the `reduced_evaluated` map before revisiting, to ensure we don't lose any information.

Reviewed By: samwgoldman

Differential Revision: D10088558

fbshipit-source-id: 7efd9161588f7b8bcdc50403fabe047d1b680a94

nmote/flow,nmote/flow,nmote/flow,nmote/flow,nmote/flow,nmote/flow,nmote/flow