NLPrompt traps InferenceStepsExceededException
CSV files can declare some formatting info

If a header ends with “(string)”, then items in that column will not be
converted into prolog expressions, but just kept as strings.
Console scrolls to sensible position after output
added call_with_step_limit/2
Added PPs and did a bunch of refactoring
Added testing tools for parser