TypeInheritanceTree Heavily inspired by http://blogs.clariusconsulting.net/kzu/how-to-inspect-a-type-inheritance-tree-properly/