PR link: https://github.com/FreeCAD/FreeCAD/pull/2350
I have documented the changes through comments in each individual commits, with links to my wiki for more details. For an overview of the Link design, see here, and most of the core changes, here.
PS: I just notice that github reorder my commits in its original time stamp, but I have rebased it multiple times with a refined order. For a more coherent view of the commits, please checkout git commit logs in my branch.