Add TranslationUnit::fatalErrors() and enable it by default.

We don't handle errors at the moment so for now it is better
to just exit as soon as the parser is in an invalid state.
Initial work on function overload resolution.

This commit adds the new type OverloadSetType and a bunch
of functions to deal with overload resolution.