Added a simple graph file of the core modules.
Merge remote-tracking branch 'upstream/master'
Some history encapsulation improvement.

This will make it easier to run the current router on top of a different
history implementation.
Merge remote-tracking branch 'upstream/master'