[hack] Ensure ServerIdeUtils.declare_and_recheck changes are undone
[hack] Ensure ServerIdeUtils.declare_and_recheck changes are undone

Summary:
`ServerIdeUtils.declare_and_recheck` needs to leave the state of the world
exactly the same as it was before. {D3877141} attempted to fix this for one
particular case, but broke other cases in the process. I added more thorough
testing to see how `ServerIdeUtils.declare_and_recheck` behaves when
declarations are added/removed to ensure the invariant is true. This contains
the following fixes.

* Revert the changes that made `SharedMem.NoCache.revive_batch` idempotent. It turns out we need its old behavior that removes items from the New heap if they aren't present in the Old heap
* Properly cleanup HH_FIXMES. These weren't being properly reverted
* Fix clean of class elements. Since we revive removed members early, when we revive the remaining members it should be done before reviving the Decl_heap.Classes

Reviewed By: dabek

Differential Revision: D3900513

fbshipit-source-id: c2295b66e0c50bdb6cb28c66034289d4286c05fe

AprilArcus/flow,ylu1317/flow,AgentME/flow,claudiopro/flow,nmote/flow,jamesgpearce/flow,chenglou/flow,facebook/flow,gabelevi/flow,claudiopro/flow,samwgoldman/flow,mroch/flow,gabelevi/flow,facebook/flow,nmote/flow,gabro/flow,jamesgpearce/flow,fletcherw/flow,jgrund/flow,jgrund/flow,nmote/flow,claudiopro/flow,ylu1317/flow,chenglou/flow,jamesgpearce/flow,TiddoLangerak/flow,ForbesLindesay/flow,JonathanUsername/flow,gabelevi/flow,jgrund/flow,ForbesLindesay/flow,ForbesLindesay/flow,AgentME/flow,popham/flow,JonathanUsername/flow,jgrund/flow,samwgoldman/flow,jamesgpearce/flow,TiddoLangerak/flow,ForbesLindesay/flow,gabelevi/flow,gabro/flow,AgentME/flow,gabro/flow,facebook/flow,gabelevi/flow,gabelevi/flow,mroch/flow,popham/flow,JonathanUsername/flow,fletcherw/flow,ForbesLindesay/flow,samwgoldman/flow,TiddoLangerak/flow,MichaelDeBoey/flow,popham/flow,nmote/flow,chenglou/flow,mroch/flow,jamesgpearce/flow,mroch/flow,gabro/flow,claudiopro/flow,samwgoldman/flow,samwgoldman/flow,jamesgpearce/flow,chenglou/flow,jgrund/flow,facebook/flow,popham/flow,AgentME/flow,nmote/flow,popham/flow,gabro/flow,ylu1317/flow,MichaelDeBoey/flow,MichaelDeBoey/flow,JonathanUsername/flow,AprilArcus/flow,TiddoLangerak/flow,nmote/flow,ylu1317/flow,popham/flow,JonathanUsername/flow,facebook/flow,JonathanUsername/flow,fletcherw/flow,AprilArcus/flow,AprilArcus/flow,TiddoLangerak/flow,fletcherw/flow,jgrund/flow,gabelevi/flow,AprilArcus/flow,ForbesLindesay/flow,popham/flow,samwgoldman/flow,jamesgpearce/flow,facebook/flow,mroch/flow,mroch/flow,samwgoldman/flow,nmote/flow,JonathanUsername/flow,AgentME/flow,ylu1317/flow,facebook/flow,MichaelDeBoey/flow,fletcherw/flow,MichaelDeBoey/flow,chenglou/flow,mroch/flow,gabro/flow,fletcherw/flow,AprilArcus/flow,claudiopro/flow,chenglou/flow