Language independent test suite

These are the C tests, ported to a language-independent code generator. 

Right now, this is just the parser module; see the dotnet bindings (at the moment, only on @thequux's dotnet-bindings branch) for an example of how it would be used.

This code has only been tested with SWI prolog. Portability patches would be welcome, but really, is there any reason to use another Prolog?