Populate def.supertypeList with linearized type hierarchy.

Note that def.typeName itself always comes at the beginning of the list,
and if T is a subtype of U, T must come before U in the list.
Implement require("ast-types").computeSupertypeLookupTable.
Add some tests of computeSupertypeLookupTable.
Merge pull request #40 from benjamn/computeSupertypeLookupTable

Implement computeSupertypeLookupTable.