Change interface to expose full QualTypes

This will be critical in practice. Only in these tiny toy versions did I not
care about the whole types.
Nullness: only check pointer types

This removes, for example, the warning on `return 0` in our example's `main`.
:rocket:
Add C++ test for nullness
Fix llvm compilation