Major refactor to building and testing code

The core code used for building ConceptNet 5 was in a bad state recently. There were lots of dead-end functions that only made sense for previous releases of ConceptNet, the organization of the code was very hard to follow, and the tests were all out of date.

ConceptNet 5 is now becoming a Luminoso-supported software package. I have refactored almost all of the core code, put it through Luminoso's code review process, added tests, and fixed bugs that the tests uncovered.

The result should be code that is more correct, more maintainable, and more understandable.