Using mixin pattern for treenode
Creating a more compact json format for git logs

2.1M json prettify
1.8M json non-prettify

1.7M json packed prettify
1.5M json packed non-prettify
Refactoring common functions into source.js
Keeping graph tracks in memory.

This is the first step for implementing rendering
and scrolling for huge set of commit logs
Implemented some paging abilities for git graph.

Canvas context seems to be lost after 4000 lines though.
Git graph animated scrolling test