Keep going toolcontext

For a compiler, exiting when the source-code is incoherent make sense. However for some tools, like nitlight, it could be useful to be able to process broken code (or just to ignore it and continue).

So, this PR introduce the flag `ToolContext::keep_going` to prevent `check_errors` to terminate the program. It is then the responsibility of the tool to manage the incomplete and possibly incoherent model that was produced.

Close #863