Memory leaks
Cleanup

No ref-counting for impl pointers
Less local pointers, use scoped variables if possible
Use ifstream instead of FILE in tokenizer

This way we can avoid to create tiny objects like tokenizer on
the heap, and files are guaranteed to be closed automatically
when going out of scope