Started work to support better CPP (issue #6)
Added basic tests for some of the unCpp functionality.
Support for files using basic CPP (defines and ifdefs, no calls to
defined macros).

Issue: #6
Proper types for some overgrown tuples.
More detailed rollup of cpp-transformed source.
Pokemon-style error handling for cpphs (catch'em all)
fix handling of tabs
Bump HSE to 1.16, fix AST representation changes.
pull script now imports stackage
Tolerate source encoding errors by replacing with Unicode replacement char.
More robust exception handling. Not too neat though.
Tracked down memory leak - the returned ModuleInfo contained fields which were not required for crossreferencing but were kept around, so split it to a part to be retained throughout, and a part which can be discarded after processing a specific module.

Also, fields of the retained part were not forced, so they held a lot of junk from GC-ing. All in all, this fixes #11.

Bonus: fix CPP tests (were not run apparently).