MODE-2297 Corrected query engine to properly report mismatched set operation columns

When each side of a set operation had different number of projected columns, the error was not properly captured and did not throw an exception. This let the query execution continue when in fact it should have been stopped. This change fixes this, better formats the query problems (reporting the errors before the warnings), and it adds some methods to `Problems` to make it easier to perform operations on different kinds of problems.