Implement graph reloading (not only replacing the old one with an original one)

Summary:
Description:

Implment a DFS graph reloading: compare the new graph with the original one.
This implementation try to keep most of the original information.
At the end, every new node and rule will be OUT_OF_DATE in order to allow the
build system to reload or update information (caching or whatever).

Test Plan:
 -1- graph1
 -2- build
 -3- update graph1 -> graph2
 -4- build
 -5- update graph2 -> graph1
 -6- build (will reload information from the cache)

Reviewers: NicolasDP

Differential Revision: http://91.121.199.76/D65